【Coursera Machine Learning】 Week2 学习笔记

来源:互联网 发布:快手上的淘宝优惠群 编辑:程序博客网 时间:2024/05/18 20:31

四、多变量线性回归(Linear Regression with Multiple Variables)

4.1 多变量线性回归模型

(1)Hypothesis

hθ(x)=θ0+θ1x1+θ2x2+θ3x3++θnxn

设定x0=1,那么
hθ(x)=θ0x0+θ1x1+θ2x2+θ3x3++θnxn=[θ0θ1θn]x0x1xn=θTx

(2)Parameters
θ0,θ1,θ2,θ3,,θn

(3)CostFunction
J(θ0,θ1,,θn)=12mi=1m(hθ(x(i))y(i))2

4.2 多变量线性回归(Gradient Descent For Multiple Variables)

跟单变量线性回归类似:

}repeat until convergence:{θ0:=θ0α1mi=1m(hθ(x(i))y(i))x(i)0θ1:=θ1α1mi=1m(hθ(x(i))y(i))x(i)1θn:=θnα1mi=1m(hθ(x(i))y(i))x(i)n

简化得:
}repeat until convergence:{θj:=θjα1mi=1m(hθ(x(i))y(i))x(i)jfor j := 0...n

4.3 特征缩放(Feature Scaling)

1、特征缩放:如果有多个变量的值在一个相近的范围内,那么我们可以将它们缩放在一个更小的范围内,将使得梯度下降算法更快地收敛。
2、特征缩放的方法:

si:=max(x0,x1,,xn)xi:=xisi

2、例子

左边比右边需要更多的步数来到达最低点。
3、通常情况下,我们进行特征缩放的时候,尝试将所有特征的尺度都尽量缩放在-1到1之间。如果不在-1到1之间也是可以,并没有明确的要求,但不要太大或者太小了。

4.4 均值归一化(mean normalization)

均值归一化是数值一般化(Feature Normalization)的另一种方式,原理和作用跟特征缩放一致。
ui:特征变量的平均值
si:特征变量的最大值-最小值

xi:=xiμisi

4.5 学习率α

如果我们的学习率α选择合适的话,我们会得到下面以梯度下降的迭代次数为横坐标的曲线图

如果学习率α太大,那么结果可能是下面两种情况,我们这个时候需要选择更小一点的学习率α


所以,梯度下降算法的每次迭代收到学习率的影响,如果学习率α过小,则达到收敛所需的迭代次数会非常高,如果学习率α过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致无法收敛。

4.6 多项式回归(Polynomial Regression)

线性回归并不适用于所有数据,有时候我们需要曲线来适应我们的数据。
假如有一个三次方模型hθ(x)=θ0+θ1x1+θ2x21+θ3x31,为了便于使用线性回归来解决,我们做如下变换

hθ(x)=θ0+θ1x1+θ2x21+θ3x31y1=x1y2=x21y2=x21hθ(y)=θ0+θ1y1+θ2y2+θ3y3

这个时候特征缩放就很有必要了。

五、正规方程(Normal Equation)

5.1 正规方程

对于方程J(θ0,θ1,,θn)=12mi=1m(hθ(x(i))y(i))2为了求J(θ0,θ1,,θn)最小值,我们利用数学方法来求解,对所有的变量求偏导数,令偏导数J(θ)θj=0,求出(θ0,θ1,,θn)使得J(θ0,θ1,,θn)最小。
求解结果为

θ=(XTX)1XTy

5.2 梯度下降与正规方程比较

梯度下降 正规方程 需要选择学习率α 不需要 需要多次迭代 一次运算得出 当特征数量n大时也能很好使用 需要计算出(XTX)1,如果特征数量n较大则运算代价大,通常来说当n小于10000时还是可以接受的 适用于各种类型的模型 只适用于线性模型,不适合逻辑回归模型等其他模型
0 0