吴恩达机器学习(三)——多特征回归及优化
多特征线性回归算法(Multiple features linear regression algorithm)即多元线性回归
1. 理论介绍
Notation:
n=Number of features(特征数)
x(i) =input(features) of ith training example(第i个输入的训练特征值)
xj(i) = value of feature j in ith training example(第i个训练样本的第j个特征量)
h(x) = Tx = 0x0+1x1+2x2+···+nxn
J(0,1,···,n)= m(h(x(i))- y(i))2
梯度下降法:
j :=j - J(0,1,···,n)
n等于1时 梯度下降的情况:
当有多个特征时,也就是n大于1时:
注意m是前面提到的训练样本数。
2. 优化方法
2.1 特征缩放
也就是确定特征在相近区域内,一般缩放在-1~1之间,在这个值附近也可以,比如0 ~3。 另外有时也会做均值归一化,也就是x1减去范围均值,再进行缩放(或者叫归一,但是这里叫归一的话我个人认为不太准确),也就是除以特征值范围(特征值最大值减去最小值)2.2 调试以及选择合适的学习率
当函数J()随着迭代次数越来越大时或者反复震荡,也就是函数不收敛,说明选的学习率过大,应该适当减小学习率。
但是学习率过小的话会导致收敛速度很慢。
2.3 标准方程法
下面比较一下两种方法的优缺点:(m是训练样本数,n是特征数)
梯度下降法 | 标准方程法 |
---|---|
需要选择合适的学习率 | 不需要选择合适的学习率 |
需要检查是否收敛 | 不需要检查是否收敛 |
n很大时,效果也很好 | n很大时(n上万就算很大), (XTX)-1计算量很大,时间复杂度O(n3)很高, |
标准方程法 不需要选择学习率;不需要画出迭代曲线,来检查是否收敛
= (XTX)-1 XT y
在Octave中代码实现:
pinv(X'*X)*X'*y