机器学习算法之回归算法

机器学习算法之回归算法

回归算法

回归是用于估计两个变量之间关系的统计过程。具体而言,回归有两个重要组成部分:自变量和因变量的关系,以及不同自变量对因变量影响的强度。回归算法的优势在于简单直接、训练速度快,而主要缺陷是要求严格的假设、需要处理异常值。主要应用场景:经济金融领域,比如股票走势预测、房价预测等。
常见回归算法主要分为以下七类:1. 线性回归 2. 逻辑回归 3. 多项式回归 4. 逐步回归 5. Lasso回归 6. 岭回归 7. ElasticNet回归


线性回归(Linear Regression)

基本思想:

试图利用属性的线性组合学习样本数据的内在规律,尽可能准确地预测实值输出标记

基本模型:


代价函数:

均方误差(Mean Squared Error)

基于均方误差最小化求解模型的方法称为"最小二乘法"(Least Square Method)

目标函数:


推导过程:

不是满秩矩阵,可解出多个使得均方误差最小化,选择哪个解作为输出,将由学习算法的归纳偏好决定。

优缺点:

优点:
  1. 直接
  2. 建模快速快速,特别适用于模型关系不是非常复杂且数据量不大的情况
  3. 可解释性好(直观表达了各属性在预测中的重要性)
缺点:
  1. 存在共线性(multiconllinearity),自相关(autocorrelation),异方差(heteroskedasticity)等问题
  2. 对异常值非常敏感,因此数据预处理时,要警惕异常值
  3. 模型参数的估计很不稳定,模型中输入数据的微小差异都可能导致参数估计的很多差异(样本扰动不稳定)

适用场景:

  1. 自变量和因变量之间是线性关系
  2. 适用于low dimension低维场景,并且每一维之间没有共线性

逻辑回归(Logistic Regression)(对数几率回归)

基本思想:

逻辑回归是通过回归的思想来解决二分类问题。将样本所属正例的概率作为模型的输出,根据此概率值对样本类别进行预测,用线性回归模型的预测结果去逼近真实标记的对数几率。

基本模型:

对数几率函数(Sigmoid函数,即形似S的函数)

上述函数的对数几率为线性模型

将视为类后验概率,即

其中:

代价函数:

极大似然估计(Maximum Likelihood Estimation, MLE)
似然函数:

对数似然函数

目标函数:

优缺点:

优点:
  1. 直接对分类可能性进行建模,无需事先假设数据分布,避免了假设分布不准确带来的问题
  2. 可以得到近似概率预测,用以辅助决策
  3. 对数几率函数是任意阶可导的凸函数,有很好的数学性质
缺点:
  1. 应该让模型构建的变量是显著的,以防止过拟合和欠拟合。好的方法是使用逐步回归方法去进行逻辑回归
  2. 逻辑回归需要大样本量,因为最大似然估计在低样本量的情况下不如最小二乘法有效
  3. 独立的变量要求没有共线性

适用场景:

  1. 用于分类场景,尤其是因变量是二分类(0/1,True/False,Yes/No)时
  2. 样本线性可分
  3. 特征空间不是很大
  4. 特征间线性无关

多项式回归(Polynomial Regression)

基本思想:

样本数据属性呈非线性关系(曲线),试图利用多项式模型拟合该样本数据。相较于线性回归,多项式回归打破了属性上的线性,即将属性的次幂看成独立的特征。

基本模型:

一元高阶多项式函数

代价函数:

和方差(The sum of squares due to error, SSE)

注:均方差

目标函数:


优缺点:

优点:
  1. 能够拟合非线性可分的数据,总体上更加灵活。与线性回归相比,对不是严格的线性关系的变量来说,多项式回归拟合度更高
缺点:
  1. 设计多项式回归模型时,需要一些数据的先验知识才能选择最佳指数(最高次幂)
  2. 指数选择不当,容易出现过拟合情况

适用场景:

  1. 适用非线性的回归关系

逐步回归

基本思想:

  1. 基于特定的标准加入或移除变量来拟合回归模型,目的是为了用最少的变量去最大化模型的预测能力,也是一种降维技术
  2. 将变量逐个引入模型,每引入一个解释变量后都要进行F检验,并对已经选入的解释变量进行t检验,将其中变得不显著的变量从方程中剔除,以确保每次引入新的变量之前回归方程中只包含显著性变量。这是一个反复的过程,直到既没有显著的解释变量选入回归方程,也没有不显著的预测变量从回归方程中剔除为止,以保证最后所得到的解释变量集是最优的。

原理介绍:

  1. 正向选择(Forward Selection)
    • 开始于最显著的变量,然后再模型中逐渐增加次显著变量。
      具体做法:将自变量逐个引入模型,引入一个自变量后都要查看该变量的引入是否使得模型发生显著性变化(F检验)。如果发生了显著性变化,那么则将该变量引入模型中,否则忽略该变量,直至所有变量都进行了考虑。
    • 具体步骤:
      1. 将全部自变量分别与因变量建立一元回归方程:
      2. 分别计算m个一元回归方程中回归系数的检验统计量F,并求出最大值为

        若,停止筛选,否则将选入变量集,此时可以将看做,进入步骤3
      3. 分别将自变量组与因变量建立二元回归方程(此时是步骤2中的),计算方程中的回归系数检验统计量F,取

        若则停止筛选否则将选入变量,此时看做。重复该步骤直到剩余自变量的最大检验统计量F小于临界值,即得最优的回归方程
    • 特点:自变量一旦剔除,则不再进入模型
    • 缺点:开始把全部自变量引入模型,计算量过大
  2. 向后消除(Backward eliminate)
    • 后退法开始于所有变量,然后逐渐移除一些不显著变量。
      具体做法:与正向选择相反,该方法先将所有变量放入模型,然后尝试将某一变量剔除,查看剔除后整个模型是否有显著性变化(F检验)。如果没有显著性变化则剔除,有则保留,直到留下解释变量均对模型有显著性影响。
    • 具体步骤:
      1. 建立全部解释变量对于因变量的线性回归方程,对对方程中个自变量的回归系数进行F检验,取最小值为:

        若,则没有自变量可剔除,此时回归方程即为最优;否则剔除,剩余解释变量可写为,进入步骤2
      2. 建立自变量与因变量的回归方程,对方程中的回归系数进行F检验,取最小值

        若,则无变量需要剔除,此时方程即为最优;否则剔除,于是剩余解释变量可为。重复该步骤,直到各变量的回归系数F值均大于临界值,即方程中没有可剔除变量,可得最优回归方程
    • 特点:自变量一旦剔除,则不再进入模型
    • 缺点:开始把全部自变量引入模型,计算量过大
  3. 逐步筛选法(Bidirectional elimination)
    • 需要每一步添加或移除一些变量。
      具体做法:在前向选择法的基础上引进后退法的思想,在引入一个变量后,首先查看该变量是否使得模型发生显著性变化(F检验)。若产生显著性变化,再对所有变量进行t检验,当之间已引入变量由于后加入变量而对因变量的影响不再显著时,则剔除该变量,确保每次引入新的变量之前回归方程中只包含显著性变量。直到既没有显著的解释变量选入回归方程,也没有不显著的解释变量从回归方程中剔除为止,即得一个最优的回归方程。
    • 具体步骤:
      1. 假定自变量被选进模型的显著性水平为,被剔除出模型的显著性水平,且,计算离差矩阵S
      2. 第一步筛选:计算各自变量的贡献,取最大值;对的作用是否显著进行统计检验F,若,则表明所有自变量与因变量皆无关,不能建立回归方程;若,则将选入模型,并将S转换从,进行第二步筛选
      3. 第二步筛选:按计算各自变量的贡献;
        取模型外自变量的最大贡献值,若,则筛选结束,第一步所建立的回归方程即为最优回归方程,则将选入模型,并将S转换从,进行第三步筛选
      4. 第三步筛选:从该步开始,先检验已经引入方程中的自变量是否满足显著性水平,若有不满足的自变量,依次剔除最不显著的,再从方程外挑选满足显著性水平中最显著的自变量进入模型。重复该步骤

基本模型:

线性回归模型:

优缺点:

优点:
  1. 可以利用逐步回归筛选并剔除引起多重共线性的变量(也就是变量不是线性无关)
缺点:
  1. 样本的数量不宜少于200个,否则存在参数估计的有偏性。
  2. 如果变量过多,可能会导致预测精度下降

Lasso回归

基本思想:

在回归系数的绝对值之和小于一个常数的约束条件下,使得残差平方和最小化,从而能够产生某些严格等于0的回归系数,得到可以解释的模型。
Lasso回归通过构造一个惩罚项得到一个较为精炼的模型,该模型压缩了一些系数,同时设定一些系数为零(剔除某些变量)。因此,除了保留特征选择的优点,还是一种处理重共线性的有偏估计。

基本模型:

  1. 线性回归的目标函数:

    解得的回归系数:
  2. L1范数
  3. Lasso方法:
    对于高维数据,"维数灾难"带来的过拟合问题,其解决思路:增加样本量和减少样本特征。数据降维方法中,主成分分析法只适用于数据空间维度小于样本量的情况,而当数据维度很高时将不再使用。
    Lasso是另一种数据降维方法,其基于惩罚方法对样本数据进行变量选择,即通过将原本很小的回归系数压缩到0,从而将这部分系数对应的变量视为非显著性变量,以此解决高维数据稀疏性问题。该方法不仅适用于线性情况,也适用于非线性情况。

目标函数:

在线性模型中加上L1范数的惩罚项:

等价于:


其中和一一对应,为调节系数

推导过程:

令(OLS,Ordinary Least Square),当时,一部分系数会被压缩至0,从而降低变量维度,以达到减少模型复杂度的目的

优缺点:

优点:
  1. L1范数倾向于产生稀疏系数,以此达到特征选择的效果
  2. 解决高维数据中的稀疏性问题
  3. 相较于岭回归,Lasso回归使用的L1范数的解具有稀疏性,可以与稀疏算法一起使用,使得计算上更有效率
缺点:
  1. 损失函数不是连续可导的,无法使用梯度下降法和牛顿法
  2. Lasso回归是为了解决岭回归不能进行变量选择问题而提出的,但Lasso不能做group selection

适用场景:

  1. 高维特征数据,特别是线性关系是稀疏关系

岭回归

基本思想:

问题:在多元线性回归中,求解得到,其中往往不是满秩矩阵,可解得多个系数使得均方误差最小化。换言之,特征之间出现多重共线问题,使用最小二乘法估计系数时,系数缺乏稳定性和可靠性。
解决方法:岭回归实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性(即多次实验得到的估计量的平均值与参数的真实值相吻合),以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法。于是,在线性回归的基础上加入一个预测误差项(一部分是偏差,一部分是方差)

基本模型:

  1. 线性回归的目标函数:

    解得的回归系数:
  2. L2范数

目标函数:

在线性模型的基础上加上L2范数的惩罚项:

根据凸优化,函数优化问题可以转成:

推导过程:



令,则:


L2范数惩罚项的使得满秩,保证了可逆,但是也由于惩罚项的加入,使得回归系数的估计不再是无偏估计。所以岭回归是以放弃无偏性、降低精度为代价解决矩阵问题的回归方法。
的选择:

  1. 模型的方差:针对不同数据集得到的期望预测模型(平均预测)和当下模型的差异。具体在数学表达式上就是回归系数的差异,泛化能力相关
    模型的偏差:预测值和真实值的差异
  2. 随着模型复杂度的提升,在训练集上的效果越好,即模型的偏差就越小,同时模型的方差就越大。对于岭回归的而言,随着的增大,就越大,越小,模型的方差就越小,同时的估计值更加偏离真实值,模型的偏差越大。所以,岭回归的关键是找到一个合理的值来平衡模型的方差和偏差。

优缺点:

优点:
  1. 能够拟合多重共线数据
  2. 对病态数据的拟合要强于最小二乘法
缺点:
  1. 相较于线性回归,损失了部分信息,并降低了模型精度
  2. 压缩了系数的值,但并未归零(相对的Lasso能压缩为0,既解决了稀疏性问题,也实现了特征选择既降维),因此岭回归没有特征选择功能

适用场景:

  1. 自变量之间存在多重共线性
  2. 自变量个数多于样本量

ElasticNet回归

基本思想:

ElasticNet回归是岭回归和Lasso回归的组合,同时使用了L1范数和L2范数,使得可以学得类似Lasso回归的稀疏模型,同时还保留了岭回归的正则化属性。

基本模型:

  1. 线性回归的目标函数:

    解得的回归系数:
  2. L1范数
  3. L2范数

目标函数:

在线性模型的基础上加上L1范数和L2范数的惩罚项:

令,则

可知,弹性网络回归的罚函数恰好是岭回归罚函数和Lasso罚函数的一个凸函数。当时,弹性网络回归为岭回归;当时,弹性网络为Lasso回归。因此弹性网络兼有Lasso和岭回归的优点,既能达到变量选择的要求,又有很好的群组效应。

优缺点:

优点:
  1. 鼓励在高度相关变量的情况下的群体效应,而不像Lasso那样将其中一些置零。当多个特征和另一个特征相关的时候弹性网络非常有用,Lasso倾向于随机选择其中一个,而弹性网络更倾向于选择两个
  2. 对所选变量的数量没有限制
  3. 通过Lasso回归和岭回归的结合,弹性网络回归可以筛选和缩减具有相关性的参数
缺点:

适用场景:

  1. 高维度
  2. 多重共线性

你可能感兴趣的:(机器学习算法之回归算法)