监督学习——线性回归

1   线性回归简介

  1.1 回归与分类的区别

      若预测的值是离散值,如年龄,此类任务位“分类”。

      若预测的值是连续值,如房价,此类任务为“回归”。

1.2  回归的目标

学习一个从输入X到输出Y的映射f,并根据该模型,对新的测试数据x进行预测,简单来说,就是找到一个输入与输出之间的映射,用于与新的输入。

1.3  线性回归模型

映射f是一个线性函数,即:f(x,w)=wTx + b

w为各个特征的权重,b为偏置项。

 

2   线性回归模型的目标函数

其中L为损失函数,R为正则函数。不带正则函数的目标函数为最小二乘线性回归模型。

2.1  损失函数

2.1.1 L2损失

预测残差

,其中为预测值,y为真实值,r表示预测值和真实值之间的差异。

L2损失

L2损失也就是预测残差的平方

训练样本上的损失之和为残差平方和

如果残差值与预测值有关,说明模型不准确。

缺点

对离群点敏感,如果某个离群点原理大部分数据,根据理想模型的预测残差将会非常大

2.1.2 L1损失

L1损失

优点

  对离群点不敏感

缺点

绝对值函数在原点不连续,优化求解麻烦

2.1.3 Huber损失

Huber损失

  

优点

综合了L2损失和L1损失。

当残差的绝对值小的时候,Huber损失函数为L2损失,当残差的绝对值大的时候,取L1损失。Huber损失既处处连续,优化又方便,对离群点又不敏感。

参数

  Scikit-learn中建议δ=1.35。

2.2  正则函数

2.2.1 L2正则

L2正则项为范数的平方。

带有L2正则的线性回归模型称为岭回归模型:

其中D为特征的维数,λ为正则参数,控制正则惩罚的强度。

岭回归模型等价于最大后验估计,其中。τ2越小,先验越强,τ2越大,先验越弱,数据更重要。

2.2.2 L1正则

L1正则为带参数的L1范数:

带有L1正则的线性回归模型称为Lasso,目标函数为:

Lasso回归模型等价于贝叶斯最大后验估计,其中。λ越大,正则惩罚项比重大。,λ越小,正则惩罚项比重小。

2.2.2 L1正则+L2正则:弹性网络

正则项同时包含L1正则和L2正则:

带有L2正则和L1正则的线性回归模型称为弹性网络,目标函数为:

3   线性回归模型优化求解

3.1  任务定义

模型的目标函数确定后,接下来就是要找到最佳的模型参数。在线性回归中,模型参数包括线性回归系数w和正则参数λ。

3.2  最佳模型参数

最佳的模型参数就是使得目标函数取极小值的参数。因为目标函数包含损失函数和正则项,损失越小,目标函数也就越小,模型就越优秀。

3.3 解析求解法

3.3.1 最小二乘线性回归解析求解

最小二乘法的目标函数:

补充(向量求导公式):

首先将J(w)展开:

利用此公式对目标函数求导(因为每一项都是实数,所以转置等于本身):

,得到:,当X满秩时,XTX可逆,此时两边同时乘以,得到:

最小二乘线性回归的正规方程组求解算法

输入:训练数据{xi,yi}Ni=1,以xi为行向量组成输入矩阵X,N个样本yi构成输出向量y

输出:特征权重向量w

计算过程:

          1. 计算X的转置矩阵XT和A=XTX;
          2. 计算A的逆矩阵A-1
          3. 计算w=A-1XT

最小二乘线性回归的奇异值分解求解算法(更加稳定)

奇异值:设A为m*n阶矩阵,q=min(m,n),A*A的q个非负特征值的算术平方根叫作A的奇异值。

输入:训练数据{xi,yi}Ni=1,以xi为行向量组成输入矩阵X,N个样本yi构成输出向量y

输出:特征权重向量w

计算过程:

          1. 计算X的SVD分解:X=UDVT;
          2. 计算y'=UTy
          3. 计算wj'=yj'/σj,σj为D的第j个对角线元素;
          4. 计算w=Vw'

 

3.3.2 岭回归解析求解

岭回归目标函数:

对目标函数求导:

令  ,得到:

类似于最小二乘线性回归的解析解求解,岭回归计算时也可以采用SVD。

岭回归的解与最小二乘线性回归的解之间的关系为:

3.4 梯度下降法

梯度下降法通常用于求解无约束的优化问题

最小二乘线性回归岭回归都可以采用梯度下降法求解。

Lasso由于目标函数中有L1正则函数不可导,不可用梯度下降法(要作用坐标轴下降法)。

3.4.1 梯度下降法过程

1.初始化:θ(0)

2.计算函数J(θ)在当前位置θ(t)处的梯度g(t),若g(t)处于设定的最终收敛范围,则返回此时的θ(t)为最佳参数。(判断当前梯度是否可以结束)

3.根据学习率η,更新位置:θ(t+1)=θ(t)-ηg(t)

4.t=t+1,转到第2步.

简而言之,不断地用学习率η和梯度g(t)更新参数,更新一次判断当前梯度是否可以结束。

3.4.2 梯度以及更新公式

最小二乘线性回归的梯度为:

最小二乘线性回归的梯度下降更新公式为:

岭回归的梯度为:

岭回归的梯度下降更新公式为:

学习率η越大,收敛速度越快,但是精度可能不够。学习率小,收敛速度慢。但是学习率过大,可能会跨越最佳值,使得目标函数反而增大,称为过冲现象

3.4.3 梯度下降类别

批处理梯度下降

在计算梯度时,用到了所有样本。

优点:更加精确。

缺点:非常耗时。

 

随机梯度下降

计算梯度时,只用一个样本

优点:速度快。

缺点:可能不精确

 

小批量梯度下降

介于批处理梯度下降和随机梯度下降之间的算法,每次看一小批样本,每批样本的数量称为批容量(Batch Size)。

Scikit-Learn建议样本数目超过10000采用随机梯度下降或小批量梯度下降。

 

3.5  坐标轴下降法

Lasso虽然不能使用梯度下降法求解,但是可以使用坐标轴下降法求解。

3.5.1 坐标轴下降法大致思想

有一个函数f(x,y)=5x2-6xy+5y,利用坐标轴下降法求解极值。

设初始x=-0.5,y=-1.0,此时函数的值f=3.25。

首先固定x,将f看成关于y的一元二次方程,对y进行求导,求解y的极值。

利用y的极值,固定y,将f看成x的一元二次方程,对x进行求导,求x的极值。

如此迭代下去直到收敛。

3.5.2 Lasso梯度分析

已知Lasso的目标函数为:

由坐标轴下降法可知,使用坐标轴下降法时,要求各个维度的梯度。

但是Lasso中,含有绝对值项,必须按照分段函数求导。

首先处理Lasso中的可微项

对Lasso中可微项进行求导:

其中w-j表示向量w中除了第j维的其他D-1个元素,xi,-j表示向量xi中除了第j维的其他D-1个元素,xi,j表示向量xi中第j维元素。式子中将第j维元素单独提出来求导。

令:

此时可微项的导数为:

接下来处理不可微的正则项|wj|的次梯度:

综合两项的导数Lasso目标函数的次梯度为:

为0,得到极值:

  

3.5.2 坐标轴下降法求解Lasso算法流程

在可微项目中,aj之和输入样本x有关,可以预先计算。

1.预先计算

2.初始化参数w(初始值为0或者随机)

3.迭代计算直到收敛:(选择变化幅度最大的维度或者轮流更新wj

计算cj

再计算wj:

4   模型评估

4.1  均方误差MSE

MSE越小越好,但是对离群点敏感。

4.2  均方根误差RMSE

4.3  平方绝对误差MAE

MAE值越小越好。

4.4  绝对误差的中值MedianAE

Median表示取中值,对离群点不敏感。

4.5  均方对数误差MSLE

MSLE可以降低标签特别大的异常值的影响。

4.6  均方根对数误差RMSLE

4.7  可解释方差分数EVS

分数最大值为1,越接近1越好。

4.8  R方分数R2 socre

R方分数的最佳值为1,如果结果为0,说明模型跟随机猜测差不多,如果为负数,说明模型还不如随机猜测。

 

posted @ 2023-02-18 22:18  Laplace蒜子  阅读(496)  评论(0)    收藏  举报