机器学习笔记(三)-多变量线性回归

本次学习笔记主要记录学习机器学习时的各种记录,包括吴恩达老师视频学习、李宏毅老师视频学习、周志华老师的《机器学习》(西瓜书)以及李航老师的《统计学习方法》。作者能力有限,如有错误等,望联系修改,非常感谢!


第一版       2021-09-22        初稿

一、多维特征

在这里插入图片描述
1.n代表特征的数量
2. x ( i ) x^{\left( i \right)} x(i)代表第i个训练实例,是特征矩阵中的第i行,是一个向量。
3. x j ( i ) {x_j}^{\left( i \right)} xj(i)代表第i行的第j个特征。

4.支持多变量的假设h表示为:(n+1个参数,n个变量)
h θ ( x )    =    θ 0 + θ 1 x 1 + . . . + θ n x n h_{\theta}\left( x \right) \,\,=\,\,\theta _0+\theta _1x_1+...+\theta _nx_n hθ(x)=θ0+θ1x1+...+θnxn
引入x0=1,则(n+1维向量)
h θ ( x )    =    θ 0 x 0 + θ 1 x 1 + . . . + θ n x n h_{\theta}\left( x \right) \,\,=\,\,\theta _0x_0+\theta _1x_1+...+\theta _nx_n hθ(x)=θ0x0+θ1x1+...+θnxn
公式可简化为
h θ ( x )    =    θ T x    =    [ θ 0 . . . θ n ] [ x 0 . . . x n ] h_{\theta}\left( x \right) \,\,=\,\,\theta ^Tx\,\,=\,\,\left[ \begin{matrix} \theta _0& ...& \theta _n\\ \end{matrix} \right] \left[ \begin{array}{c} x_0\\ ...\\ x_n\\ \end{array} \right] hθ(x)=θTx=[θ0...θn]x0...xn

二、多变量梯度下降

代价函数为:
J ( θ 1 , . . . θ n )    =    1 2 m ∑ i = 1 m ( h θ ( x ( i ) )    −    y ( i ) ) 2 J\left( \theta _1,...\theta _n \right) \,\,=\,\,\frac{1}{2m}\sum_{i=1}^m{\left( h_{\theta}\left( x^{\left( i \right)} \right) \,\,-\,\,y^{\left( i \right)} \right) ^2} J(θ1,...θn)=2m1i=1m(hθ(x(i))y(i))2
批量梯度下降算法为:
r e p e a t { θ j    : =    θ j − α ∂ ∂ θ j J ( θ 0 , . . . θ n ) } repeat\\\left\{ \theta _j\,\,:=\,\,\theta _j-\alpha \frac{\partial}{\partial \theta _j}J\left( \theta _0,...\theta _n \right) \right\} repeat{θj:=θjαθjJ(θ0,...θn)}
(n >= 1):
r e p e a t { θ j    : =    θ j − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) ( s i m u ; tan ⁡ e o u s l y    u p d a t e    θ j    f o r    j = 0 , . . . n ) } repeat\\\left\{ \begin{array}{c} \theta _j\,\,:=\,\,\theta _j-\alpha \frac{1}{m}\sum_{i=1}^m{\left( h_{\theta}\left( x^{\left( i \right)} \right) -y^{\left( i \right)} \right)}{x_j}^{\left( i \right)}\\ \left( simu;\tan eously\,\,update\,\,\theta _j\,\,for\,\,j=0,...n \right)\\\end{array} \right\} repeat{θj:=θjαm1i=1m(hθ(x(i))y(i))xj(i)(simu;taneouslyupdateθjforj=0,...n)}

三、多元梯度下降-特征缩放(feature scaling)

前提:以房价问题为例,假设我们使用两个特征,房屋的尺寸和房间的数量,尺寸的值为 0-2000 平方英尺,而房间数量的值则是 0-5,以两个参数分别为横纵坐标,绘制代价函数的等高线图能,看出图像会显得很扁,梯度下降算法需要非常多次的迭代才能收敛。
解决的方法:尝试将所有特征的尺度都尽量缩放到-1 到 1 之间。
在这里插入图片描述

均值归一化(mean normalization)

x n    =    x n − μ n S n x_n\,\,=\,\,\frac{x_n-\mu _n}{S_n} xn=Snxnμn
其中un是平均值,是Sn是max-min(或标准差)。

四、多元梯度下降-学习率(learning rate)

迭代次数和代价函数的图表可以看出何时收敛:
在这里插入图片描述
在机器学习笔记(二)中提到过α的影响,在此复习,梯度下降算法的每次迭代受到学习率的影响:
(1)如果学习率 α 过小,则达到收敛所需的迭代次数会非常高;
(2)如果学习率 α 过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致无法收敛。

建议的α值:… , 0.001 , 0.003 , 0.01 , 0.03 , 0.1 , 0.3 , 1 , …

五、特征和多项式回归

在这里插入图片描述
h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 可代替 h θ ( x ) = θ 0 + θ 1 ( s i z e ) + θ 2 ( s i z e ) 2 或 h θ ( x ) = θ 0 + θ 1 ( s i z e ) + θ 2 ( s i z e ) h_{\theta}\left( x \right) =\theta _0+\theta _1x_1+\theta _2x_2 \\ \text{可代替}h_{\theta}\left( x \right) =\theta _0+\theta _1\left( size \right) +\theta _2\left( size \right) ^2 \\ \text{或}h_{\theta}\left( x \right) =\theta _0+\theta _1\left( size \right) +\theta _2\sqrt{\left( size \right)} hθ(x)=θ0+θ1x1+θ2x2可代替hθ(x)=θ0+θ1(size)+θ2(size)2hθ(x)=θ0+θ1(size)+θ2(size)
采用多项式回归模型,进行梯度下降算法前,特征缩放是必要的。

六、正规方程(Normal Equation)

某些线性回归问题会用到正规方程,而不是梯度下降。
在这里插入图片描述
正规方程是通过求解下面的方程来找出使得代价函数最小的参数的:
∂ ∂ θ j J ( θ j ) = 0 \frac{\partial}{\partial \theta _j}J\left( \theta _j \right) =0 θjJ(θj)=0
假设训练集特征矩阵为X,训练集结果为向量 y,则利用正规方程解出向量:
θ = ( X T X ) − 1 X T y \theta =\left( X^TX \right) ^{-1}X^Ty θ=(XTX)1XTy
以上求导得θ的推导过程:
推导过程参考
推到过程

梯度下降和正规方程比较

梯度下降正规方程
需要选择学习率α不需要
需要多次迭代一次运算得出
当特征数量 n 大时也能较好适用需要计算 ( X T X ) − 1 \left( X^TX \right) ^{-1} (XTX)1如果特征数量 n 较大则运算代价大,因为矩阵逆的计算时间复杂度为O(n³),通常来说当 n 小于 10000 时还是可以接受的
适用于各种类型的模型只适用于线性模型,不适合逻辑回归模型等其他模型

正规方程及不可逆性

不可逆(奇异或退化)矩阵:
(1)特征之间不独立,如同时包含英尺为单位的尺寸和米为单位的尺寸两个特征;
(2)特征数量大于训练集的数量。(可正则化解决)

问:
θ = ( X T X ) − 1 X T y \theta =\left( X^TX \right) ^{-1}X^Ty θ=(XTX)1XTy中的 ( X T X ) \left( X^TX \right) (XTX)不可逆怎么办?
做法
(1)首先观察所有特征,检查是否有多余特征,如果有,就删除,直到不再有多余的为止;
(2)否则,考虑使用正则化方法。

注:Octave求逆:pinv(伪逆,即使不可逆,也能求出来)、inv(逆)

1 2 3


  1. 机器学习-吴恩达 ↩︎

  2. 机器学习-李宏毅 ↩︎

  3. 机器学习-周志华 ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值