机器学习算法-线性回归概念

线性回归(预测模型)

主要符号

符号含义
R实数集
R n \R^n Rn n n n维空间向量
X输入空间
Y输出空间
x ∈ X x\in{X} xX输入,实例
y ∈ Y y\in{Y} yY输出,标记
{ ( a 1 , b 1 ) , . . . , ( a N , b N ) } \left\{ \left( a_{1},b_{1}\right),...,\left(a_{N},b_{N}\right)\right\} {(a1,b1),...,(aN,bN)}训练数据集
N样本容量
( x i , y i ) \left( x_{i},y_{i}\right) (xi,yi) i i i 个训练样本点
x = ( x ( 1 ) , . . . , x ( n ) ) T x = (x^{(1)},...,x^{(n)})^T x=(x(1),...,x(n))T输入向量
x i ( j ) x^{(j)}_{i} xi(j)输入向量 i i i 的第 j j j 个分量
θ \theta θ抽象模型参数
w = ( w 1 , w 2 , . . . , w n ) w= (w_{1},w_{2},...,w_{n}) w=(w1,w2,...,wn)模型参数
b模型参数

什么是回归算法

  • 回归算法是一种有监督算法;
  • 回归算法是一种比较常用的机器学习算法,用于构建一个模型来做特征向量到标签的映射。在算法的学习过程中,试图寻找一个模型,最大程度拟合训练数据;
  • 回归算法在使用时,接收一个n维特征向量,输出一个连续的数据值。
    eg:一元线性回归
房屋面积 m 2 m^2 m2租赁价格 ( ¥ 1000 ) (¥1000) (1000)
100.8
151
201.8
302
503.2
603
603.1
703.5

输入:x特征向量
输出: h θ ( x ) h_{\theta}(x) hθ(x)即预测值
利用Python画出散点图:

import matplotlib.pyplot as plt
import numpy as np
x = [10,15,20,30,50,60,60,70]
y = [0.8,1,1.8,2,3.2,3,3.1,3.5]
plt.scatter(x,y,marker = 'x')
plt.xlabel("Area",fontsize = 10)
plt.ylabel("Price",fontsize = 10)
plt.show()

  • hypothesis 假设函数: h ( x ) = w 1 x ( 1 ) + b h(x)=w_{1}x^{(1)}+b h(x)=w1x(1)+b
  • 问题核心:求解适当的参数 w 1 w_{1} w1 b b b
    eg:多元线性回归
房屋面积房间数量租赁价格
1010.8
2011.8
3012.2
3022.5
7035.5
7025.2

h ( x ) = w 1 x ( 1 ) + b − − − − − ( 1 ) h(x)=w_{1}x^{(1)}+b---- -(1) h(x)=w1x(1)+b1
h ( x ) = w 1 x ( 1 ) + w 2 x ( 2 ) + b − ( 2 ) h(x)=w_{1}x^{(1)}+w_{2}x^{(2)}+b-(2) h(x)=w1x(1)+w2x(2)+b2
写成向量的形式
h ( x ) = w • x + b h(x) = w•x + b h(x)=wx+b
简化符号,可以令:
w = ( w 1 , . . . , w n , b ) T w = (w_{1},...,w_{n},b)^T w=(w1,...,wn,b)T
x = ( x ( 1 ) , . . . , x ( n ) , 1 ) T x = (x^{(1)},...,x^{(n)},1)^T x=(x(1),...,x(n),1)T
数学模型可以表示为: h ( x ) = w T • x h(x) = w^ {T}•x h(x)=wTx

计算方法

1.解析解:最小二乘法(又称最小平方法)是一种数学优化技术,它由两部分组成:
(1)、计算所有样本误差的平均(代价函数)
(2)、使用最优化方法寻找数据的最佳函数匹配(抽象的)
2.数值解:梯度下降法、牛顿法、拟牛顿法等

损失函数,代价函数,目标函数

  • 损失函数(Loss Function)定义在单个样本上,算的是一个样本的误差。比如:
    l o s s ( θ ) = ( y i ^ − y i ) 其 中 y i ^ = h θ ( x i ) loss(\theta)=(\hat{y_i} - y_i) 其中\hat{y_i}=h_{\theta}(x_i) loss(θ)=(yi^yi)yi^=hθ(xi)
    0-1损失函数: J ( θ ) = { 1 , Y ≠ f ( x ) 0 , Y = f ( x ) J(\theta)=\left\{ \begin{aligned} 1, Y\neq{f(x)}\\ 0, Y=f(x)\\ \end{aligned} \right. J(θ)={1,Y̸=f(x)0,Y=f(x)
    感知器损失函数: J ( θ ) = { 1 , ∣ Y − f ( x ) ∣ > t 0 , ∣ Y − f ( x ) ∣ ≤ t J(\theta)=\left\{ \begin{aligned} 1, |Y-f(x)|>t\\ 0, |Y-f(x)|\le{t}\\ \end{aligned} \right. J(θ)={1,Yf(x)>t0,Yf(x)t
    平方和损失函数: J ( θ ) = ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta)=\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2 J(θ)=i=1m(hθ(x(i))y(i))2
    绝对损失函数: J ( θ ) = ∑ i = 1 m ∣ h θ ( x ( i ) ) − y ( i ) ∣ J(\theta)=\sum_{i=1}^{m}|h_{\theta}(x^{(i)})-y^{(i)}| J(θ)=i=1mhθ(x(i))y(i)
    对数损失函数: J ( θ ) = − ∑ i = 1 m ( y ( i ) log ⁡ h θ ( x ( i ) ) ) J(\theta)=-\sum_{i=1}^{m}(y^{(i)}\log{h_{\theta}(x^{(i)})}) J(θ)=i=1m(y(i)loghθ(x(i)))
  • 代价函数(Cost Function)定义在整个训练集上,是所有样本误差的平均值,也就是损失函数的平均,比如:
    C o s t ( θ ) = 1 N ∑ i = 1 N ( y i ^ − y i ) 2 , 其 中 y i ^ = h θ ( x i ) Cost(\theta)=\frac{1}{N}\sum_{i=1}^N (\hat{y_i}-y_i)^2,其中\hat{y_i}=h_{\theta}(x_i) Cost(θ)=N1i=1N(yi^yi)2,yi^=hθ(xi)
  • 目标函数(Object Function)是最终需要优化的函数
    O b j ( θ ) = 1 N ∑ i = 1 N l o s s ( y i ^ , y i ) Obj(\theta)=\frac{1}{N}\sum_{i = 1}^{N}loss(\hat{y_i},y_i) Obj(θ)=N1i=1Nloss(yi^,yi)

线性回归算法的步骤

  • Step1:画出散点图确定回归方程
  • Step2:写出回归方程的基本形式(以线性为例)
    h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n = θ 0 1 + θ 1 x 1 + . . . + θ n x n = θ 0 x 0 + θ 1 x 1 + . . . + θ n x n = ∑ i = 0 n θ i x i = θ T x \begin{aligned}h_{\theta}(x)&=\theta_{0} +\theta_{1}x_{1}+ \theta_{2}x_{2} +...+\theta_{n}x_{n} \\ &=\theta_{0}1 +\theta_{1}x_{1}+...+\theta_{n}x_{n}\\ &=\theta_{0}x_{0} +\theta_{1}x_{1}+...+\theta_{n}x_{n}\\ &=\sum_{i=0}^{n}\theta_{i}x_{i}=\theta^Tx\end{aligned} hθ(x)=θ0+θ1x1+θ2x2+...+θnxn=θ01+θ1x1+...+θnxn=θ0x0+θ1x1+...+θnxn=i=0nθixi=θTx
    最终是要计算出 θ \theta θ的值,并选择最优的 θ \theta θ构成算法公式
  • Step3:写出目标函数
    object:样本预测值与实际值的差值最小化
    m i n J ( θ ) = 1 2 ∑ i = 1 m ( ϵ ( i ) ) 2 = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 minJ(\theta)=\frac{1}{2}\sum_{i=1}^{m}(\epsilon^{(i)})^2=\frac{1}{2}\sum_{i=1}^{m}(h_{{\theta}}(x^{(i)})-y^{(i)})^2 minJ(θ)=21i=1m(ϵ(i))2=21i=1m(hθ(x(i))y(i))2
  • Step4:计算待估计参数的值,求出回归方程

求解方法

方法一:极大似然估计解释最小二乘法
极大似然估计
  • 前提假设:对于 y i = θ T x ( i ) + ϵ ( i ) y^{i}=\theta^Tx^{(i)}+\epsilon^{(i)} yi=θTx(i)+ϵ(i),假设 ϵ ( i ) \epsilon^{(i)} ϵ(i)独立同分布,服从均值为0,方差为某一定值 σ 2 \sigma^2 σ2的高斯分布,即 ϵ ( i ) ∼ N ( 0 , σ 2 ) \epsilon^{(i)}\sim{N(0,\sigma^2)} ϵ(i)N(0,σ2)
    假设的内涵:假设就是根据常理应该是正确的,只是接近真实。
  • 对于第 i i i个样本: y ( i ) = θ T x ( i ) + ϵ ( i ) y^{(i)}=\theta^Tx^{(i)}+\epsilon^{(i)} y(i)=θTx(i)+ϵ(i)
    P ( ϵ ( i ) ) = 1 2 π σ exp ⁡ ( − ( ϵ ( i ) ) 2 2 σ 2 ) P(\epsilon^{(i)})=\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{(\epsilon^{(i)})^2}{2\sigma^2}) P(ϵ(i))=2π σ1exp(2σ2(ϵ(i))2)
    P ( y ( i ) ∣ x ; θ ) = 1 2 π σ exp ⁡ ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) P(y^{(i)}|x;\theta)=\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{(y^{(i)}-\theta^{T}x^{(i)})^2}{2\sigma^2}) P(y(i)x;θ)=2π σ1exp(2σ2(y(i)θTx(i))2)
    得到似然函数:
    L ( θ ) = ∏ i = 1 m P ( y ( i ) ∣ x ; θ ) = ∏ i = 1 m 1 2 π σ exp ⁡ ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) \begin{aligned}L(\theta)&=\prod_{i=1}^{m}P(y^{(i)}|x;\theta)\\ &=\prod_{i=1}^{m}\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{(y^{(i)}-\theta^{T}x^{(i)})^2}{2\sigma^2}) \end{aligned} L(θ)=i=1mP(y(i)x;θ)=i=1m2π σ1exp(2σ2(y(i)θTx(i))2)
    对数似然函数:
    l ( θ ) = ln ⁡ L ( θ ) = ∑ i = 1 m log ⁡ 1 2 π σ exp ⁡ ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) = m log ⁡ 1 2 π σ − 1 σ 2 ∗ 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 \begin{aligned}l(\theta)=\ln{L(\theta)}&=\sum_{i=1}^{m}\log\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{(y^{(i)}-\theta^{T}x^{(i)})^2}{2\sigma^2})\\ &=m\log\frac{1}{\sqrt{2\pi}\sigma}-\frac{1}{\sigma^2}*\frac{1}{2}\sum_{i=1}^{m}(y^{(i)}-\theta^{T}x^{(i)})^2 \end{aligned} l(θ)=lnL(θ)=i=1mlog2π σ1exp(2σ2(y(i)θTx(i))2)=mlog2π σ1σ2121i=1m(y(i)θTx(i))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^{T}x^{(i)})^2 J(θ)=21i=1m(y(i)θTx(i))2
最小二乘法
  • 对于 y ^ = θ T x \hat{y}=\theta^{T}x y^=θTx,其中:
    X = { x ( 1 ) T x ( 2 ) T ⋮ x ( m ) T } = { x 11 x 12 ⋯ x 1 n x 21 x 22 ⋯ x 2 n ⋮ ⋮ ⋱ ⋮ x m 1 x m 2 ⋯ x m n } X=\begin{Bmatrix} x^{(1)T} \\ x^{(2)T} \\ \vdots\\ x^{(m)T} \\ \end{Bmatrix}= \begin{Bmatrix} x_{11} & x_{12} & \cdots & x_{1n} \\ x_{21} & x_{22} & \cdots & x_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ x_{m1} & x_{m2} & \cdots & x_{mn} \\ \end{Bmatrix} X=x(1)Tx(2)Tx(m)T=x11x21xm1x12x22xm2x1nx2nxmn
    X θ = { x 11 x 12 ⋯ x 1 n x 21 x 22 ⋯ x 2 n ⋮ ⋮ ⋱ ⋮ x m 1 x m 2 ⋯ x m n } { θ 1 θ 2 ⋮ θ n } = { y 1 ^ y 2 ^ ⋮ y m ^ } \begin{aligned} X\theta&=\begin{Bmatrix} x_{11} & x_{12} & \cdots & x_{1n} \\ x_{21} & x_{22} & \cdots & x_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ x_{m1} & x_{m2} & \cdots & x_{mn} \\ \end{Bmatrix}\begin{Bmatrix} \theta_1 \\ \theta_2 \\ \vdots\\ \theta_n \\ \end{Bmatrix}\\ &=\begin{Bmatrix} \hat{y_1} \\ \hat{y_2} \\ \vdots\\ \hat{y_m} \\ \end{Bmatrix} \end{aligned} Xθ=x11x21xm1x12x22xm2x1nx2nxmnθ1θ2θn=y1^y2^ym^
    目标函数:
    J ( θ ) = 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 = 1 2 ( X θ − y ) T ( X θ − y ) \begin{aligned} J(\theta)&=\frac{1}{2}\sum_{i=1}^{m}(y^{(i)}-\theta^{T}x^{(i)})^2\\ &=\frac{1}{2}(X\theta-y)^{T}(X\theta-y) \end{aligned} J(θ)=21i=1m(y(i)θTx(i))2=21(Xθy)T(Xθy)
    对目标函数进行求导:
    ▽ θ J ( θ ) = ▽ θ ( 1 2 ( X θ − y ) T ( X θ − y ) ) = ▽ θ ( 1 2 ( θ T X T X θ − θ T X T y − y T X θ + y T y ) 2 ) = 1 2 ( ( X T X + ( X T X ) T ) θ − X T y − ( y T X ) T ) = X T X θ − X T y 令 ▽ θ J ( θ ) = 0 得 到 θ = ( X T X ) − 1 X T y \begin{aligned} \bigtriangledown_{\theta}J(\theta)&=\bigtriangledown_{\theta}(\frac{1}{2}(X\theta-y)^{T}(X\theta-y))\\ &=\bigtriangledown_{\theta}(\frac{1}{2}(\theta^{T}X^{T}X\theta-\theta^TX^Ty-y^TX\theta+y^Ty)^2)\\ &=\frac{1}{2}((X^TX+(X^TX)^T)\theta-X^Ty-(y^TX)^T)\\ &=X^TX\theta-X^Ty \end{aligned}\\ 令\bigtriangledown_{\theta}J(\theta)=0\\ 得到\theta=(X^TX)^{-1}X^Ty θJ(θ)=θ(21(Xθy)T(Xθy))=θ(21(θTXTXθθTXTyyTXθ+yTy)2)=21((XTX+(XTX)T)θXTy(yTX)T)=XTXθXTyθJ(θ)=0θ=(XTX)1XTy
X T X X^TX XTX不可逆
  • 考虑是否存在多余特征,去掉多余特征
  • 考虑特征之间是否存在共线性,采用降维算法,对数据进行预处理
  • 若想保留所有特征,将结果加入惩罚项以保证其可逆:
    θ = ( X T X + λ I ) − 1 X T y \theta=(X^TX+\lambda{I})^{-1}X^Ty θ=(XTX+λI)1XTy
  • 证明方法:加入惩罚项
    1) X T X X^TX XTX半正定,对于任意的非零向量 μ \mu μ:
    μ T X T X μ = ( X μ ) T μ 令 V = X μ , 则 V T V ⩾ 0 \mu^TX^TX\mu=(X\mu)^T\mu\\令V=X\mu,则V^TV\geqslant0 μTXTXμ=(Xμ)TμV=XμVTV0
    2)对于任意的实数 λ > 0 , X T X + λ I 正 定 \lambda>0,X^TX+\lambda{I}正定 λ>0,XTX+λI
    μ T ( X T X + λ I ) μ = μ T X T X μ + λ μ T μ > 0 \mu^T(X^TX+\lambda{I})\mu=\mu^TX^TX\mu+\lambda\mu^T\mu>0 μT(XTX+λI)μ=μTXTXμ+λμTμ>0恒成立。
    3)从而 X T X + λ I X^TX+\lambda{I} XTX+λI可逆,保证回归公式一定有意义。
方法二:梯度下降法
梯度下降
  • 梯度下降法(Gradient Descent, GD)常用于求解无约束情况下凸函数(Convex Function)的极小值,是一种迭代类型的算法,因为凸函数只有一个极值点,故求解出来的极小值点就是函数的最小值点
    J ( θ ) = 1 2 m ∑ i = 1 m ( h ( x θ ( i ) ) − y ( i ) ) 2 J(\theta)=\frac{1}{2m}\sum_{i=1}^{m}(h(x^{(i)}_{\theta})-y^{(i)})^{2} J(θ)=2m1i=1m(h(xθ(i))y(i))2
    θ ∗ = arg ⁡ θ m min ⁡ J ( θ ) \theta^{*}=\arg_\theta^m\min{J(\theta)} θ=argθmminJ(θ)
梯度下降法(数值解)
  • Step1:初始化 θ \theta θ(随机初始化)
  • Step2:迭代,新的 θ \theta θ能够使得 J ( θ ) J(\theta) J(θ)更小
    θ j + 1 = θ j − α ∂ ∂ θ j J ( θ ) \theta_{j+1}=\theta_{j}-\alpha\frac{\partial}{\partial{\theta_j}}J(\theta) θj+1=θjαθjJ(θ)
  • Step3:如果 J ( θ ) J(\theta) J(θ)能够继续减小,返回Step2,知道迭代完成。

仅考虑单个样本的单个 θ \theta θ参数的梯度值
∂ ∂ θ j J ( θ ) = ∂ ∂ θ j 1 2 ( h θ ( x ) − y ) 2 = 2 • 1 2 ( h θ ( x ) − y ) • ∂ ∂ θ j ( h θ ( x ) − y ) = ( h θ ( x ) − y ) ∂ ∂ θ j ( ∑ i = 0 n θ i x i − y ) = ( h θ ( x ) − y ) x j \begin{aligned} \frac{\partial}{\partial{\theta_j}}J(\theta)&=\frac{\partial}{\partial{\theta_j}}\frac{1}{2}(h_{\theta}(x)-y)^2\\ &=2•\frac{1}{2}(h_{\theta}(x)-y)•\frac{\partial}{\partial{\theta_j}}(h_{\theta}(x)-y)\\ &=(h_{\theta}(x)-y)\frac{\partial}{\partial{\theta_j}}(\sum_{i=0}^{n}\theta_{i}x_{i}-y)\\ &=(h_{\theta}(x)-y)x_{j} \end{aligned} θjJ(θ)=θj21(hθ(x)y)2=221(hθ(x)y)θj(hθ(x)y)=(hθ(x)y)θj(i=0nθixiy)=(hθ(x)y)xj

批量梯度下降法(BGD)
  • 使用所有样本的梯度值作为当前模型参数 θ \theta θ的更新
    ∂ ∂ θ j J ( θ ) = ( h θ ( x ) − y ) x j \frac{\partial}{\partial{\theta_j}}J(\theta)=(h_{\theta}(x)-y)x_{j} θjJ(θ)=(hθ(x)y)xj
    ∂ J ( θ ) ∂ θ j = ∑ i = 1 m ∂ ∂ θ j = ∑ i = 1 m x j ( i ) ( h θ ( x ( i ) ) − y ( i ) ) = ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \begin{aligned} \frac{\partial{J(\theta)}}{\partial{\theta_{j}}}&=\sum_{i=1}^{m}\frac{\partial}{\partial{\theta_j}}\\ &=\sum_{i=1}^{m}x_{j}^{(i)}(h_{\theta}(x^{(i)})-y^{(i)})\\ &=\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})x_{j}^{(i)} \end{aligned} θjJ(θ)=i=1mθj=i=1mxj(i)(hθ(x(i))y(i))=i=1m(hθ(x(i))y(i))xj(i)
    θ j = θ j + α ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \theta_{j}=\theta_{j}+\alpha{\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})x_{j}^{(i)}} θj=θj+αi=1m(hθ(x(i))y(i))xj(i)
随机梯度下降法(SGD)
  • 使用单个样本的梯度值作为当前模型参数 θ \theta θ的更新
    ∂ ∂ θ j J ( θ ) = ( h θ ( x ) − y ) x j \frac{\partial}{\partial{\theta_j}}J(\theta)=(h_{\theta}(x)-y)x_{j} θjJ(θ)=(hθ(x)y)xj
    for i = 1 to m ,{
    θ j = θ j + α ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \theta_{j}=\theta_{j}+\alpha{(h_{\theta}(x^{(i)})-y^{(i)})x_{j}^{(i)}} θj=θj+α(hθ(x(i))y(i))xj(i)
    }
BGD和SDB的区别
  • SGD速度比BGD快(整个数据集从头到尾执行的迭代次数少)
  • SGD在某些情况下(全局存在多个相对最优解/ J ( θ ) J(\theta) J(θ)不是一个二次函数),SGD有可能会跳出某些小的局部最优解,所以一般情况下不会比BGD差;SGD在收敛的位置会存在/ J ( θ ) J(\theta) J(θ)函数波动的情况,抗噪声很差。
  • BGD一定能够得到一个局部最优解(在线性回归模型中一定是得到一个全局最优解),SGD由于随机性的存在可能导致最终结果比BGD差
  • 注意:优先选择SGD
小批量梯度下降法(MBGD)
  • 如果要满足算法训练过程较快,又需要保证最终参数训练的准确率较高,提出小批量梯度下降法(Mini-batch Gradient Descent,简称MBGD)。
  • MBGD中是把样本划分为b个样本(b一般为10),然后以这b个样本的平均梯度为更新方向:
    for i = 1 to m/10,{
    θ j = θ j + α ∑ k = i i + 10 ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \theta_{j}=\theta_{j}+\alpha{\sum_{k=i}^{i+10}(h_{\theta}(x^{(i)})-y^{(i)})x_{j}^{(i)}} θj=θj+αk=ii+10(hθ(x(i))y(i))xj(i)
    }
学习率选择和参数初始化
  • 由于梯度下降法中负梯度方向作为变量的变化方向,所以有可能导致最终求解的值是局部最优解,所以在使用梯度下降的时候,一般需要进行一些调优策略
    • 学习率的选择:学习率过大,表示每次迭代更新的时候变化比较大,有可能会跳过最优解;学习率过小,表示每次迭代更新的时候变化比较小,就会导致迭代速度过慢,很长时间都不能结束;
    • 算法初始参数数值的选择:初始值不同,最终获得的最小值也有可能不同,因为梯度下降法求解的是局部最优解,所以一般情况下,选择多次不同初始值运行算法,并最终返回损失函数最小情况下的结果值;
    • 标准化:由于样本不同特征值的取值范围不同,可能会导致在各个不同参数上迭代速度不同,为了减少特征取值的影响,可以将特征进行标准化操作。
BGD、SGD、MBGD的区别
  • 当样本量为m的时候,每次迭代BGD算法中对于参数值更新一次,SGD算法中对于参数值更新m次,MBGD算法中对参数值更新m/n次,相对来讲SGD的更新速度最快;
  • SGD算法中对于每个样本都需要更新参数值,当样本值不太正常的时候,就有可能会导致本次的参数更新会产生相反的影响,也就是说SGD算法的结果并不完全收敛,而是在收敛结果处波动;
  • SGD算法是每个样本都更新一次参数值,所以SGD算法特别适合样本数据量特别大的情况以及在线机器学习(Online ML)

线性回归过拟合

  • 一般来说,模型的训练误差很小,而预测误差很大的情况下,模型存在过拟合的情况
  • 对于目标函数: 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θ(x(i))y(i))2
  • 为了防止数据过拟合,也就是 θ \theta θ值在样本空间中不能过大,可以在目标函数之上增加一个平方和损失: J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ i = 1 n θ j 2 J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2+\lambda{\sum_{i=1}^{n}\theta_{j}^{2}} J(θ)=21i=1m(hθ(x(i))y(i))2+λi=1nθj2
  • 正则项(norm)/惩罚项: λ ∑ i = 1 n θ j 2 \lambda{\sum_{i=1}^{n}\theta_{j}^{2}} λi=1nθj2;这里叫做L2-norm

正则化方法

  • 目标函数: O b j ( w ) = 1 2 N ∑ i = 1 N ( w • x − y i ) 2 + λ R ( w ) Obj(w)=\frac{1}{2N}\sum_{i=1}{N}(w•x-y_{i})^2+\lambda{R(w)} Obj(w)=2N1i=1N(wxyi)2+λR(w)
  • L1正则化:
    • 权值向量 w w w中各个元素的绝对值之和: R ( w ) = ∥ w ∥ 1 = ∣ w 1 ∣ + ∣ w 2 ∣ R(w)=\rVert{w}\rVert_{1} = \lvert{w_{1}}\lvert+\lvert{w_{2}}\lvert R(w)=w1=w1+w2
  • L2正则化:
    • 权值向量 w w w中各个元素的平方和: R ( w ) = 1 2 ∥ w ∥ 2 2 = 1 2 ( w 1 2 + w 2 2 ) R(w)=\frac{1}{2}\rVert{w}\rVert_{2}^{2}=\frac{1}{2}(w_{1}^{2}+w_{2}^{2}) R(w)=21w22=21(w12+w22)
  • L1正则化 VS L2正则化
    • L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择
    • L2正则化可以防止模型过拟合
  • L1正则化产生稀疏解的原理
    在这里插入图片描述
    由上图可知,对于二元线性回归来说,L1正则的限制性区域为蓝色正方形固定区域,L2正则限制性区域为蓝色圆形固定区域,当目标函数前半部分与后半部分(限制性条件)相交时,集等势线与固定区域相交,交点即为最优解,L1正则交点存在参数为0的情况,而L2则不存在,由此可推出L1正则容易产生稀疏解。

LASSO回归

  • 使用L1正则的线性回归模型就称为LASSO回归(Least Absolute Shrinkage and Selection Operator)
    J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ i = 1 n ∣ θ j ∣ , λ > 0 J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2+\lambda{\sum_{i=1}^{n}\rvert\theta_{j}}\rvert, \lambda>0 J(θ)=21i=1m(hθ(x(i))y(i))2+λi=1nθjλ>0

Ridge回归

  • 使用L2正则的线性回归模型称为Ridge回归(岭回归) J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ i = 1 n θ j 2 , λ > 0 J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2+\lambda{\sum_{i=1}^{n}\theta_{j}^2}, \lambda>0 J(θ)=21i=1m(hθ(x(i))y(i))2+λi=1nθj2λ>0

Elastic Net

  • 同时使用L1和L2正则的线性回归模型就称为Elastic Net算法(弹性网络算法) J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ( p ∑ j = 1 n ∣ θ j ∣ + ( 1 − p ) ∑ j = 1 n θ j 2 ) , λ > 0 , p ∈ [ 0 , 1 ] J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2+\lambda{(p\sum_{j=1}^{n}|\theta_{j}|+(1-p)\sum_{j=1}^{n}\theta_{j}^{2})},\lambda>0,p\in[0,1] J(θ)=21i=1m(hθ(x(i))y(i))2+λ(pj=1nθj+(1p)j=1nθj2),λ>0,p[0,1]

Ridge(L2-norm)和Lasso(L1-norm)的比较

  • L2-norm中,由于对各个维度的参数缩放是在一个圆内,不可能有维度参数变为0的情况,那么也就不会产生稀疏解;实际应用中,数据的维度中是存在噪音和冗余的,稀疏的解可以找到有用的维度并且减少冗余,提高后续算法预测的准确性和鲁棒性(减少了过拟合)(L1-norm可以达到最终解的稀疏性的要求)
  • 一般用Lasso进行冗余特征清除,然后用Ridge模型,最后得到具有较高的准确性、鲁棒性以及稳定性(冗余特征已经被删除),Lasso模型具有较高的求解速度。
  • 如果既要考虑稳定性也要考虑求解的速度,就用Elastic Net

模型效果评判标准

  • 对于预测回归模型,评判标准为 R 2 R^2 R2即回归系数: M S E = 1 m ∑ i = 1 m ( y i − y i ^ ) 2 R M S E = M S E = 1 m ∑ i = 1 m ( y i − y i ^ ) 2 R 2 = 1 − R S S T S S = 1 − ∑ i = 1 m ( y i − y i ^ ) 2 ∑ i = 1 m ( y i − y i ‾ ) 2 , y i ‾ = 1 m ∑ i = 1 m y i MSE = \frac{1}{m}\sum_{i=1}^{m}(y_{i}-\hat{y_{i}})^2\\ RMSE = \sqrt{MSE}=\sqrt{\frac{1}{m}\sum_{i=1}^{m}(y_{i}-\hat{y_{i}})^2}\\ R^2=1-\frac{RSS}{TSS}=1-\frac{\sum_{i=1}^{m}(y_{i}-\hat{y_{i}})^2}{\sum_{i=1}^{m}(y_{i}-\overline{y_{i}})^2}, \overline{y_{i}}=\frac{1}{m}\sum_{i=1}^{m}y_{i} MSE=m1i=1m(yiyi^)2RMSE=MSE =m1i=1m(yiyi^)2 R2=1TSSRSS=1i=1m(yiyi)2i=1m(yiyi^)2,yi=m1i=1myi
  • MSE:误差平方和,越趋近于0表示模型拟合训练数据。
  • RMSE:MSE的平方根,作用同MSE
  • R 2 R^2 R2:取值范围(负无穷,1],值越大表示模型越拟合训练数据;最优解是1;当模型预测值为随机值的时候,有可能为负;若预测值恒为样本期望, R 2 R^2 R2为0
  • TSS:总平方和(Total Sum of Squares),表示样本之间的差异情况,是伪方差的m倍
  • RSS:残差平方和RSS(Residual Sum of Squares),表示预测值和样本值之间的差异情况,是MSE的m倍

机器学习调参

  • 在实际应用中,对于各种算法模型(线性回归)来讲,我们需要获取 θ 、 λ 、 p \theta、\lambda、p θλp的值,由于 λ 、 p \lambda、p λp为超参数,无法求解,需要人为设定,从而求解最优的 θ \theta θ值,该过程为调参(超参数)
  • 交叉验证:将训练数据分为多份,其中一份进行数据验证并获取最优的超参数 λ \lambda λ p p p;比如:十折交叉验证、五折交叉验证(scikit-learn中默认)等。

局部加权回归

局部加权回归-损失函数

  • 普通线性回归损失函数: J ( θ ) = ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta)=\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2 J(θ)=i=1m(hθ(x(i))y(i))2
  • 局部加权回归损失函数: J ( θ ) = ∑ i = 1 m w ( i ) ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta)=\sum_{i=1}^{m}w^{(i)}(h_{\theta}(x^{(i)})-y^{(i)})^2 J(θ)=i=1mw(i)(hθ(x(i))y(i))2

局部加权回归权重值

  • w ( i ) w^{(i)} w(i)是权重,主要是根据预测点与训练集点的距离作为数据集中的点赋权值。当某点离要预测的点越远,其权重越小,否则越大。常用的公式为: w ( i ) = exp ⁡ ( − ( x ( i ) − x ^ ) 2 2 k 2 ) w^{(i)}=\exp{(-\frac{(x^{(i)}-\hat{x})^2}{2k^2})} w(i)=exp(2k2(x(i)x^)2)
  • 该函数称为指数衰减函数,其中 k k k为波长参数,它控制了权值随距离下降的速率
  • 注意:使用该方式主要应用到样本之间的相似性考虑
  • NOTE:局部加权回归是一种非参数学习算法,也就是说参数不固定,在每一次预测的时候,均需要使用训练数据重新训练模型参数。
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值