机器学习笔记-第二章 多变量线性回归
本文为斯坦福大学吴恩达教授的《机器学习》视频课程第二章主要知识点
多元线性回归方程:
其中,X1到Xn是多个特征向量
回归方程用向量可以表示成:
其中,假设X0为1,这样方便X与θ的配对计算
梯度下降方法:
想要使用一个线性方程来拟合数据集,当数据集是N元的时候,则需要选择N个变量来与这些未知数组成线性方程,这N个变量记作theta。在迭代的首次,当然可以随意选择一组未知数开始。
接下来,就是选择一个代价函数cost(),注意此函数的自变量当然是N个theta,使得代价函数最小(与实际情况拟合的最好)。一般来说,我们选择最小二乘法来判断代价的大小。
接下来,为了判断N元函数cost()的最小值点,就是一个求导的过程了。这里要插一句题外话,线性回归代价函数的最小值就是极小值,因此不存在迭代到某个极小值之后卡死在某点而不能继续寻找最小值的情况,具体的可以自己证明。
梯度下降算法采用了梯度的概念,在某点沿着梯度的方向移动一小段距离,然后重复迭代这个过程,直到完成收敛。
多元线性回归的梯度下降方法,在算完一次所有的θ后,同时更新所有的θ
特征缩放:
为了让梯度下降法能够更快的收敛,避免导致等情形,我们需要对特征值进行缩放,一般有两种方法,一是特征范围,二是均值归一化。
特征范围:
即保证多个特征在相似的范围内,最好−1 ≤ x(i) ≤ 1,直接让x(i)除以x(i) 的范围值。
均值归一化:
举个栗子,房价在100-2000波动,平均1000,则特征值变形为
学习速率:
测试梯度下降法是否正常运作的方法:
画出代价函数与调试次数之间的关系图,代价函数的值在调试次数增加时应该下降,最终代价函数的值会趋向于收敛,但是不同代价函数到达收敛的调试次数都不尽相同,有30次,300次,有3000次。
图
方法一:肉眼看是否收敛
方法二:计算每增加一次调试,代价函数减少的值是否小于0.001(达到这种效果比价困难,建议使用方法一)
如果代价函数与调试次数的函数呈现上升的图形,或者波浪式图形,大部分情况是因为梯度下降法不起作用,需要使用更小的学习速率(α);
但如果学习速率(α)太小了,则代价函数收敛的速度会极其慢,调试的次数会非常多,效率低下;
如何选择学习速率(α)?
可以选择0.001,0.003,0.01,0.03,0.1,0.3(每次增加约三倍)
多项式回归:
1、多项式回归可以考虑将特征整合,如把x1 和 x2 整合成一个新的特征 x3 ,表示成 x3=x1*x2.
2、为了最好的拟合多项式,可以对特征值取不同的方式,平方、平方根等。
当然,此时特征值的范围需要缩放。
正规方程:
作用:一步得到θ的最优解,而不需要不断的迭代:
θ的代价函数是关于θ的二次函数,
θ可以写成
使用正规方程法,就不需要归一化特征变量
什么时候使用梯度下降法,什么时候使用正规方程?
梯度下降法的特征:
1、需要选择学习速率;
2、需要不断调试,运行多次;
3、即使特征向量的数量n很多,也可以运行的很好
正规方程的特征:
1、不需要选择学习速率;
2、不需要不断调试,只要运行一次;
3、当特征向量的数量n很多,的逆矩阵是n的三次方,运算量很大,会运行很慢
N的数量怎么样算大?
当n>10000时,n就很大了,计算机如果仍然使用正规方程就会很慢,建议使用特征下降法。
综上:
1、特征向量的数量n>10000时
2、在其它更复杂的算法中,如逻辑回归法等,不能用正规方程
这以上两种情况使用特征下降法,其它的使用正规方程。
注:
1、当X1和X2之间是一维线性关系,即众多特征向量中有2个是线性的关系;
2、特征向量数量太多,样本数量太少,即m<n
以上两种情况出现的时候,表示XT*X 不可逆,就不能继续使用正规方程。解决这种情况,可以删除1中线性相关的特征变量中的任意一个,或者删除2中的一些特征变量,使得m>n,或者使用regularization。