线性回归·最小二乘法·梯度下降【知识整理】

综述

学生党整理一些关于数据分析的知识:线性回归最小二乘法的介绍,误差评估及梯度下降等分析原理。

原理介绍

线性回归(最小二乘法)

以银行贷款为案例背景介绍:

工资年龄额度
40002520000
80003070000
50002835000
75003350000
120004085000

目标函数

  • 目标:分析银行会贷款受工资和年龄的影响情况,预测银行贷款量
  • 考虑:工资和年龄分别影响贷款的多少
  • 思路:通过数据,找到一个合适的拟合平面

在这里插入图片描述
假设: θ 1 \theta_1 θ1是年龄参数, θ 2 \theta_2 θ2是工资参数

  • 拟合平面为:
    h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 ( θ 0 是 偏 置 项 ) h_\theta(x) = \theta_0+\theta_1x_1+\theta_2x_2\quad(\theta_0是偏置项) hθ(x)=θ0+θ1x1+θ2x2(θ0)

  • 整合: h θ ( x ) = ∑ i = 0 n θ i x i = θ T x h_\theta(x) = \sum^{n}_{i = 0}\theta_ix_i=\theta^Tx hθ(x)=i=0nθixi=θTx

误差分析

真实值合预测值之间一定会存在差异(用 ε \varepsilon ε表述误差)

  • 对于样本:
    y i = θ T x i + ε i y^i=\theta^Tx^i+\varepsilon^i yi=θTxi+εi

误差 ε i \varepsilon^i εi是独立并且有相同的分布,并且服从 μ \mu μ为0, σ 2 \sigma^2 σ2 θ 2 \theta^2 θ2的高斯分布(正态分布)。

  • 独立:样本之间不会产生影响,每次贷款都是独立事件。
  • 同分布:不同的样本每次贷款都是分布相同的事件。
  • 高斯分布:银行给出的贷款量会有一定的浮动,大部分情况浮动小,小部分情况浮动大。
    在这里插入图片描述

似然函数求解

思路:误差项用实际值和预测值的差代替,得到不含误差变量的函数,函数表示预测值成为实际值的可能性。

  • 预测值与误差: y i = θ T x i + ε i y^i=\theta^Tx^i+\varepsilon^i yi=θTxi+εi
  • 由于误差服从高斯分布: p ( ε i ) = 1 2 π σ e − ( ε i ) 2 2 σ 2 p(\varepsilon^i)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(\varepsilon^i)^2}{2\sigma^2}} p(εi)=2π σ1e2σ2(εi)2
  • 结合上面两个式子:
    p ( y i ∣ x i ; θ ) = 1 2 π σ e − ( y i − θ T x i ) 2 2 σ 2 p(y^i|x^i;\theta)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(y^i-\theta^Tx^i)^2}{2\sigma^2}} p(yixi;θ)=2π σ1e2σ2(yiθTxi)2

方法:似然函数求解

  • 似然函数: L ( θ ) = ∏ i = 1 m p ( y i ∣ x i ; θ ) = ∏ i = 1 m 1 2 π σ e − ( y i − θ T x i ) 2 2 σ 2 L(\theta)=\prod_{i=1}^{m}p(y^i|x^i;\theta)=\prod_{i=1}^{m}\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(y^i-\theta^Tx^i)^2}{2\sigma^2}} L(θ)=i=1mp(yixi;θ)=i=1m2π σ1e2σ2(yiθTxi)2
  • 取对数: l o g L ( θ ) = l o g ∏ i = 1 m 1 2 π σ e − ( y i − θ T x i ) 2 2 σ 2 logL(\theta)=log\prod_{i=1}^{m}\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(y^i-\theta^Tx^i)^2}{2\sigma^2}} logL(θ)=logi=1m2π σ1e2σ2(yiθTxi)2
  • 展开化简: ∑ i = 1 m l o g 1 2 π σ e − ( y i − θ T x i ) 2 2 σ 2 = m l o g 1 2 π σ − 1 2 σ 2 ∑ i = 1 m ( y i − θ T x i ) 2 \sum_{i=1}^{m}log\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(y^i-\theta^Tx^i)^2}{2\sigma^2}}=mlog\frac{1}{\sqrt{2\pi}\sigma}-\frac{1}{2\sigma^2}\sum_{i=1}^{m}(y^i-\theta^Tx^i)^2 i=1mlog2π σ1e2σ2(yiθTxi)2=mlog2π σ12σ21i=1m(yiθTxi)2
  • 目标:让似然函数越大越好,即目标函数越小,得出的函数拟合度越好 J ( θ ) = 1 2 ∑ i = 1 m ( y i − θ T x i ) 2 ( 最 小 二 乘 法 ) J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(y^i-\theta^Tx^i)^2\quad(最小二乘法) J(θ)=21i=1m(yiθTxi)2()

偏导求解最小值:

  • 目标函数: J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x i ) − y i ) 2 = 1 2 ( X θ − y ) T ( X θ − y ) ) J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(h_\theta(x^i)-y^i)^2=\frac{1}{2}(X\theta-y)^T(X\theta-y)) J(θ)=21i=1m(hθ(xi)yi)2=21(Xθy)T(Xθy))
  • 求偏导: ∇ θ J ( θ ) = ∇ θ ( 1 2 ( X θ − y ) T ( X θ − y ) ) ) = X T X θ − X T y \nabla_\theta J(\theta)=\nabla_\theta(\frac{1}{2}(X\theta-y)^T(X\theta-y)))=X^TX\theta-X^Ty θJ(θ)=θ(21(Xθy)T(Xθy)))=XTXθXTy
  • 令偏导等于 0 即可得到拟合度最好的函数系数 θ = ( X T X ) − 1 X T y \theta =(X^TX)^{-1}X^Ty θ=(XTX)1XTy

评估

  • 最常用的评估项 R 2 R^2 R2 1 − ∑ i = 1 m ( y i ^ − y i ) 2 ∑ i = 1 m ( y i − y ‾ ) 2 ( 残 差 平 方 和 ) ( 类 似 方 差 项 ) 1-\dfrac{\sum_{i = 1}^{m}(\hat{y_i}-y_i)^2}{\sum_{i = 1}^{m}(y_i- \overline{y})^2}\qquad\dfrac{(残差平方和)}{(类似方差项)} 1i=1m(yiy)2i=1m(yi^yi)2()()
  • R 2 R^2 R2的取值越接近于 1 认为模型的拟合度越好

梯度下降

当我们得到一个目标函数后,直接求解可能并不可行(线性回归可以当做一个特例),机器学习就是将一推数据交给机器,然后指定学习方向(目标函数),让它朝着这个方向去做。
在这里插入图片描述

  • 目标函数: J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x i ) − y i ) J(\theta_0,\theta_1)=\frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^i)-y^i) J(θ0,θ1)=2m1i=1m(hθ(xi)yi)
  • 目标:寻找山谷的最低点,即目标函数的极值点
  • 方法:(1)找到合适方向(2)每次递增一小点(3)根据方向和递增量更新参数

三种梯度下降法

目标函数: J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x i ) − y i ) 2 J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(h_\theta(x^i)-y^i)^2 J(θ)=21i=1m(hθ(xi)yi)2

  • 批量梯度下降(BGD): ∂ J ( θ ) ∂ θ j = − 1 m ∑ i = 1 m ( y i − h θ ( x i ) ) x j i θ j ′ = θ j + 1 m ∑ i = 1 m ( y i − h θ ( x i ) ) x j i \frac{\partial J(\theta)}{\partial{\theta_j}}=-\frac{1}{m}\sum_{i=1}^{m}(y^i-h_\theta(x^i))x^i_j\qquad\theta_j'=\theta_j+\frac{1}{m}\sum_{i=1}^{m}(y^i-h_\theta(x^i))x^i_j θjJ(θ)=m1i=1m(yihθ(xi))xjiθj=θj+m1i=1m(yihθ(xi))xji
    (容易得到最优解,但是由于每次考虑所有样本,速度很慢)
  • 随机梯度下降(SGD): θ j ′ = θ j + ( y i − h θ ( x i ) ) x j i \theta_j'=\theta_j+(y^i-h_\theta(x^i))x^i_j θj=θj+(yihθ(xi))xji(每次找一个样本,迭代速度快,但不一定每次都朝着收敛的方向)
  • 小批量梯度下降法(MBGD): θ j : = θ j − α 1 10 ∑ k = i i + 9 ( h θ ( x k ) − y k ) x j k \theta_j:=\theta_j-\alpha\frac{1}{10}\sum_{k=i}^{i+9}(h_\theta(x^k)-y^k)x^k_j θj:=θjα101k=ii+9(hθ(xk)yk)xjk(每次更新选择一部分数据来算,实用!

学习率

  • 学习率(步长):对结果会产生巨大的影响,一般设置较小值
  • 批量处理数据量:32,64,128都可以,很多时候还要考虑内存和效率
    在这里插入图片描述

小结

本章主要介绍了线性回归的最小二乘法的推到过程、误差的评估方法、三种梯度下降方法及学习率的设置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值