简洁机器学习笔记——线性回归

线性回归

在数学上,线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。
在机器学习中,线性回归则是使用线性模型解决回归问题的算法

问题分析

线性回归问题可以用数学语言描述为

  • 目标函数

h θ ( x ) = θ 0 + θ 1 x h_{\theta}(x)=\theta_{0}+\theta_{1} x hθ(x)=θ0+θ1x

  • 代价函数

    J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J\left(\theta_{0}, \theta_{1}\right)=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2} J(θ0,θ1)=2m1i=1m(hθ(x(i))y(i))2

  • 优化目标

    minimize ⁡ θ 0 , θ 1 J ( θ 0 , θ 1 ) \underset{\theta_{0}, \theta_{1}}{\operatorname{minimize}} J\left(\theta_{0}, \theta_{1}\right) θ0,θ1minimizeJ(θ0,θ1)

梯度下降

从一组参数开始,使评价函数不断减小, α \alpha α为学习率,决定了梯度下降的步长

θ j : = θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 ) (  for  j = 0  and  j = 1 ) \theta_{j}:=\theta_{j}-\alpha \frac{\partial}{\partial \theta_{j}} J\left(\theta_{0}, \theta_{1}\right) \quad(\text { for } j=0 \text { and } j=1) θj:=θjαθjJ(θ0,θ1)( for j=0 and j=1)

j = 0 : ∂ ∂ θ 0 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) h θ ( x ) = θ 0 + θ 1 x j = 1 : ∂ ∂ θ 1 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x ( i ) ) \begin{aligned} &j=0: \frac{\partial}{\partial \theta_{0}} J\left(\theta_{0}, \theta_{1}\right)=\frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) \quad h_{\theta}(x)=\theta_{0}+\theta_{1} x\\ &j=1: \frac{\partial}{\partial \theta_{1}} J\left(\theta_{0}, \theta_{1}\right)=\frac{1}{m} \sum_{i=1}^{m}\left(\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) \cdot x^{(i)}\right) \end{aligned} j=0:θ0J(θ0,θ1)=m1i=1m(hθ(x(i))y(i))hθ(x)=θ0+θ1xj=1:θ1J(θ0,θ1)=m1i=1m((hθ(x(i))y(i))x(i))

参数必须同时更新,不能分开更新

多变量线性回归

目标函数
h θ ( x ) = θ 0 + θ x 1 + θ 2 x 2 + … + θ n x n h_{\theta}(x)=\theta_{0}+\theta_{x_{1}}+\theta_{2} x_{2}+\ldots+\theta_{n} x_{n} hθ(x)=θ0+θx1+θ2x2++θnxn
x 0 x_{0} x0设为1,则原式可写作
h θ ( x ) = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n h_{\theta}(x)=\theta_{0}x_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\cdots+\theta_{n} x_{n} hθ(x)=θ0x0+θ1x1+θ2x2++θnxn
用矩阵表示为
h θ ( x ) = θ T X h_{\theta}(x)=\theta^{T} X hθ(x)=θTX
代价函数为
J ( θ 0 , θ 1 , … , θ n ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J\left(\theta_{0}, \theta_{1}, \ldots, \theta_{n}\right)=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2} J(θ0,θ1,,θn)=2m1i=1m(hθ(x(i))y(i))2
参数更新的计算方法
θ j : = θ j − α ∂ ∂ θ j J ( θ 0 , … , θ n ) θ j : = θ j − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \theta_{j}:=\theta_{j}-\alpha \frac{\partial}{\partial \theta_{j}} J\left(\theta_{0}, \ldots, \theta_{n}\right)\\ \theta_{j}:=\theta_{j}-\alpha \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x_{j}^{(i)} θj:=θjαθjJ(θ0,,θn)θj:=θjαm1i=1m(hθ(x(i))y(i))xj(i)
α \alpha α为学习率,决定了梯度下降的步长

数据归一化

  • 目的:确保所有特征尺度都处于相同数量级,否则代价函数图像会因特征尺度差异过大而显得很扁,梯度下降算法需要非常多次的迭代才能收敛

  • 方法:将所有特征的尺度都缩放到-1到1之间

    常用方式:
    x n = x n − μ n s n x_{n}=\frac{x_{n}-\mu_{n}}{s_{n}} xn=snxnμn
    其中 μ n \mu_{n} μn 是平均值, s n s_{n} sn是标准差

学习率

梯度下降算法收敛所需要的迭代次数根据模型的不同而不同,我们不能提前预知,学习率过低会导致收敛速度较慢,过高可能会造成不收敛

可以尝试:

α=0.001 , 0.01 , 0.03 , 0.1 , ……

多项式回归

目标函数:
h θ ( x ) = θ 0 + θ 1 x + θ 2 x 2 + θ 3 x 3 … … h_{\theta}(x)=\theta_{0}+\theta_{1} x+\theta_{2} x^{2}+\theta_{3} x^{3}…… hθ(x)=θ0+θ1x+θ2x2+θ3x3
如果我们采用多项式回归模型,在运行梯度下降算法前,特征缩放非常有必要。

正规方程(Normal equation)

区别于梯度下降法的另一种获得参数向量的方法。

假设我们的训练集特征矩阵为 X(包含了 x0=1)并且我们的训练集结果为向量 y, 则利用正规方程解出向量:
∂ ∂ θ j J ( θ ) = ⋯ = 0 X θ − y = 0 X T X θ = X T y \frac{\partial}{\partial \theta_{j}} J(\theta)=\cdots=0\\ \begin{aligned} &X \theta-y=0\\ &X^{T} X \theta=X^{T} y \end{aligned} θjJ(θ)==0Xθy=0XTXθ=XTy
结果为:
θ = ( X T X ) − 1 X T y \theta=\left(X^{T} X\right)^{-1} X^{T} y θ=(XTX)1XTy
对于不可求逆的训练集特征矩阵,正规方程法不适用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wmhsjtu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值