吴恩达机器学习(三)——多特征回归及优化

多特征线性回归算法(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θ\theta(x) = θ\thetaTx = θ\theta0x0+θ\theta1x1+θ\theta2x2+···+θ\thetanxn

J(θ\theta0,θ\theta1,···,θ\thetan)=12m\frac{1}{2m} \summ(hθ\theta(x(i))- y(i))2
梯度下降法:
θ\thetaj :=θ\thetaj - α\alphaθ\frac{\partial}{\partial\theta} J(θ\theta0,θ\theta1,···,θ\thetan)

n等于1时 梯度下降的情况:

吴恩达机器学习(三)——多特征回归及优化

当有多个特征时,也就是n大于1时:

吴恩达机器学习(三)——多特征回归及优化

注意m是前面提到的训练样本数。

2. 优化方法

2.1 特征缩放

也就是确定特征在相近区域内,一般缩放在-1~1之间,在这个值附近也可以,比如0 ~3。 另外有时也会做均值归一化,也就是x1减去范围均值,再进行缩放(或者叫归一,但是这里叫归一的话我个人认为不太准确),也就是除以特征值范围(特征值最大值减去最小值)

2.2 调试以及选择合适的学习率

当函数J(θ\theta)随着迭代次数越来越大时或者反复震荡,也就是函数不收敛,说明选的学习率α\alpha过大,应该适当减小学习率α\alpha
但是学习率α\alpha过小的话会导致收敛速度很慢。

2.3 标准方程法

下面比较一下两种方法的优缺点:(m是训练样本数,n是特征数)

梯度下降法 标准方程法
需要选择合适的学习率 不需要选择合适的学习率
需要检查是否收敛 不需要检查是否收敛
n很大时,效果也很好 n很大时(n上万就算很大), (XTX)-1计算量很大,时间复杂度O(n3)很高,

标准方程法 不需要选择学习率;不需要画出迭代曲线,来检查是否收敛
θ\theta = (XTX)-1 XT y
在Octave中代码实现:

 pinv(X'*X)*X'*y