机器学习笔记-线性回归
来源:互联网 发布:中兴网络机顶盒官网 编辑:程序博客网 时间:2024/05/16 12:17
Linear Regression Problem
信用额度预测
希望算法可以给出针对用户信用卡额度的预测,即当我们收集到用户的一些信息(如下),那么我们如何决定发放给该用户的信用额度呢?
线性回归
这个问题要求我们的hypothesis可以给出实数范围内的预测结果。同样的从最简单的假设出发,对于每一个用户,
这样得到了线性回归的假设为:
和之前用于分类的一点点不同在于加权和不需要再进行一个sign运算来决定是+1还是-1。加权的结果直接就是我们给出的预测值。(like perceptron, but without the sign.)
线性假设的直观认识
如果x是一维的,就是要找出一条直线,来最好的拟合平面上的点;如果x是二维的,就是要找三维空间的一个平面,来最好的拟合这些数据点。所谓最好的拟合, 就是要使得图中的所有的红线(误差residuals,拟合之后还时存在的差异)的总长最小。
linear regression: find lines/hyperplanes with small residuals.
The Error Measure
为了打到最好的拟合效果,我们就需要给定一个衡量residuals大小的方法,最常用的衡量错误的方法是平方误差:
损失函数越小,就代表模型拟合的越好(暂时认为这么说是对的)。 现在我们的目标就是要最小化
线性回归算法
通过上一小节的分析,我们现在的目标就是要把
为了计算和表示的方便,我们将
现在我们的目标变为最小化如下的
关于这个
Ein(w) : 连续,可微分,凸函数(函数的曲线像山谷一样)。- 凸函数:在函数的最低点(谷底,函数取最小值的地方)的梯度(沿各个变量的方向的导数都)为
0 。
如果要求得
task:find
也就是说能使得
所以现在的目标是要求解一个
求梯度
要找使得
如何求
- 当
w 是一维的时候:Ein(w)=1N(aw2−2bw+c) ⟶ ▽Ein(w)=1N(2aw−2b) - 当
w 是向量的时候:Ein(w)=1N(wTAw−2wTb+c) ⟶ ▽Ein(w)=1N(2Aw−2b)
这样我们就得到了线性回归的损失函数
得到最佳的线性回归的权重
现在我们已经求出了梯度的表达式,接下来要做的就是求得使得梯度为0的
task: find
其中
线性回归算法
- 从数据
D 中, 构造数据矩阵X 和输出向量y
XN×(d+1)=⎡⎣⎢⎢⎢⎢xT1xT2⋯xTN⎤⎦⎥⎥⎥⎥y=⎡⎣⎢⎢⎢⎢y1y2⋯yN⎤⎦⎥⎥⎥⎥ - 计算伪逆
X†:(d+1)×N - 返回权重
wlin=X†y h=XX†y
所以只要平台上有一个很好的可以求解伪逆的算法,我们就可以很容易的求得线性回归模型的最佳参数,从而得到一个线性回归模型
Generalization Issue
线性回归用于二分类
线性回归vs线性分类
我们了解了linear regression,现在来看看线性回归和之前我们介绍的线性分类有什么不同。
1. 线性分类
想要最小化
2. 线性回归
有解析解, 非常容易求解。
由于线性回归有这么容易求解的方法,而
我们只需要在意识上将用于标识正例和负例的
两种损失函数的关系
- 0/1 error function
err0/1(y,y^)=|[sign(wTx)≠y]| - square error function
errsqr(y,y^)=(wTx−y)2
左图是
这能说明什么呢?
根据VC维的理论有:
通过上面的这个不等式可以看出,如果我们可以将
所以这就从理论上解释了为什么线性回归可以用来做分类。虽然对于线性分类来说线性回归只是在不断的优化(最小化)它的上限。但是优化它的上限是很容易做到的。
这就是
小技巧:
一般的做法当我们需要进行二分类的时候,我们可以使用linear regression的结果当做是PLA算法或者是Pocket算法的初始的
参考
- 林轩田-机器学习基石
- 机器学习笔记-线性回归
- 机器学习笔记:线性回归
- 机器学习实战线性回归局部加权线性回归笔记
- 【机器学习之学习笔记】线性回归
- 【机器学习笔记】一元线性回归
- 机器学习笔记-线性回归
- 机器学习笔记—线性回归
- Stanford机器学习笔记-1.线性回归
- 机器学习笔记之线性回归
- 机器学习笔记:简单线性回归
- 机器学习笔记——线性回归
- 机器学习笔记一【线性回归】
- 机器学习笔记(1)-线性回归
- 机器学习笔记——线性回归
- 机器学习笔记一:线性回归
- 机器学习入门笔记(二)----线性回归
- NG机器学习线性回归笔记
- 机器学习笔记:线性回归,异常值
- Oracle之SQL优化-索引的基本原理(一)
- 信用卡积分价值排行
- 【独家】程序猿写码必听的精选歌单(持续更新中...)
- 吐司
- Codeforces Round #424 D. Office Keys(二分)
- 机器学习笔记-线性回归
- w_char_t
- Python面向对象,类,继承,多态及鸭子类型,获取类的类型,方法和属性(类似java的反射)
- hibernate中大对象的存储
- 验证手机格式
- 安装 Cloudera Manager、CDH、KUDU 随手记
- ubuntu12.04升级gcc至4.8
- 茶叶好
- SpringMVC的各种参数绑定方式