当前位置: 代码迷 >> 综合 >> 机器学习-Coursera-3多变量线性回归
  详细解决方案

机器学习-Coursera-3多变量线性回归

热度:76   发布时间:2023-12-27 20:03:06.0

假设函数

Hθ)=θ0+θ1X1+θ2X2+θ3X3+?+θ?X?

使用矩阵乘法的定义,多变量假设函数可以简单表示为

 

hθ(x)=[θ0 θ1... θn]=θTx

为了方便起见,将x0设置为1

成本函数

J(θ)=1/2m(hθ(x(i))-y(i))^2    

多变量的梯度下降

重复直至收敛:

 

:=? (()?)*

in other words:

repeat until convergence:{

:=? (()?)*   for j:=0...n

}

最终 梯度下降矩阵表示法为:

θ:=θ??(Xθ??)

特征规范化

将特征值放到大致相同的范围加速梯度下降,适用于轮廓图不圆的情况。

1特征缩放

  其中si为特征变化范围

2均值归一化

其中为该特征变量的平均值

梯度下降提示

1调试梯度下降

绘制具有迭代次数的图。如果J(θ)增加,α需要减小,α过大的情况导致无法收敛。

2自动收敛检测

如果J(θ)在一次迭代中减小小于E,则收敛,E为一些小zh值,10^-3 

如果学习率α足够小,J(θ)将在每次迭代时减小。

正规方程

是在没有迭代的情况下找到最佳的值。

点击链接获取证明过程:

https://en.wikipedia.org/wiki/Linear_least_squares_(mathematics)

http://eli.thegreenplace.net/2014/derivation-of-the-normal-equation-for-linear-regression

梯度下降算法和正规方程的比较           

梯度下降 正规方程
需要选择α 无需选择α
需要多次迭代 无需多次迭代
O(n^2) O(n^3)
适合n较大情况 n小时效果好

 其中n为特征的个数,当n超过10000时,可开始选择梯度下降算法。

正规方程不可逆性

在octave中使用pinv函数而非inv函数

不可逆,主要的原因有两点:

冗余特征,其中两个特征密切相关(线性相关)

特征太多(m<=n),删除一些特征

多项式回归

我们可以通过不同方式的假设改进我们的特征和ji假设函数形式。

将多项式回归变为线性回归

l可以令x1^2=x2 将多项式改变 特征变为x2 其的取值范围也变了,利用x1^2进行计算。