Linear Regression with multiple variables 多参数线性回归
1·Multiple features
引例:同第一讲中一样,依然用房屋售价问题为例。不同的是,本次的房屋售价问题考虑到了其他的因素有多个参数,而不再是单一的参数。如下图:
其中:
n 为参数的个数
Xi(i为X的上标)为第i个训练例子的参数
Xij(i为X的上标,j为X的下标)为第i个训练例子的第j个参数
则:
为了方便定义x0=1,可得:
可得cost function 为:
对比单参数线性回归(n=1)和多参数线性回归(n>1)的梯度下降(单参数在左边,多参数在右边):
2·Feature Scaling
如果各个参数的取值范围差别很大会有什么影响呢?参数的取值范围差别很大会造成运算速度变慢,需经过多次迭代才能得到使cost function最小。
怎么解决这个问题呢?Make sure features are on a similar scale.
尽量做到使每一个参数在大概-1到1的范围内。
也可以用均值归一化的方法来解决这个问题。
怎么判定梯度下降的方法正常工作?
如果梯度下降正常工作,那么随着迭代次数的增加,min(J)的值会逐渐收敛,也就是非递增的。
如果迭代的结果如下图所示:
那就说明梯度下降没有正常工作,可能是学习率alpha设置的过大了,这时就要减小alpha
如何设置alpha?
若alpha设置的太小,则迭代速度太慢,需要很多次迭代才会收敛,若alpha设置的太大,则可能不会收敛。
3·Features and polynomial regression
以房价为例,当多项式的最高次为2时,不符合规律,所以最高次设为3
还有另一种方法:
4·Normal equation
先来看一种通过计算直接得到Theta值的算法
通过求导令导数为0的方法寻找极点。这样计算的方法的缺点是比较麻烦。
下面以房价为例,通过normal equation计算Theta值。
其中:
X为(m*(n+1))的矩阵,y为m*1矩阵,X为m*(n+1)的原因是前面已提到过的令x0=1
Gradient Descent与Normal equation的对比
Gradient Descent的优缺点:
需要选择alpha,alpha选择不当对结果影响极大
需要多次迭代
即使n的值很大,依然能够很好的工作
Normal equation 的优缺点:
不需要选择alpha
不需要迭代
需要通过矩阵的计算来求解
时间复杂度为O(n^3)当n很大时,计算速度很慢
不可逆怎么办?
造成(XTX)不可逆的原因有如下两点:1.参数冗余,比如房屋特征中既有平方米又有平方英尺2.参数太多。
解决方法删除冗余参数或其他的参数,或者使用正则化(后续章节会讲到)。