当前位置:   article > 正文

机器学习-常用回归算法归纳(全网之最)_机器学习回归算法大全

机器学习回归算法大全

前言

原创不易,转载请注明出处

机器学习中关于解决回归问题的总结

注:以下线性回归中,均可采用梯度下降、最小二乘(交替)、牛顿法(拟牛顿)、坐标轴下降、正规方程解析解、最小角回归法 求得。下面整理只给出每个算法最常用的解法。

关于机器学习&深度学习中,损失、代价、目标、成本含义解释

  • 损失函数:真实值与预测值的差距
  • 代价函数:所有样本损失值加总 / 样本数
  • 目标函数:损失函数加了正则项
  • 成本函数:成本函数和代价函数是等价的

注:如以下涉及到的用词错误,敬请谅解

一元线性回归

百度百科

​ 一元线性回归是分析只有一个自变量(自变量x和因变量y)线性相关关系的方法。一个经济指标的数值往往受许多因素影响,若其中只有一个因素是主要的,起决定性作用,则可用一元线性回归进行预测分析。

白话原理

​ 形如: y = w x + b y = wx + b y=wx+b 。只有一个自变量和一个因变量的直线方程,目的是找到最优的回归系数w和偏置b,使得预测值 y ^ \hat y y^ 和真实值 y y y 的损失最小。

代价函数

​ 均方误差:
J ( θ ) = 1 2 m ∑ i = 0 m ( y i − h θ ( x i ) ) 2 J(\theta) = \frac{1}{2m}\sum_{i = 0} ^m(y^i - h_\theta (x^i))^2 J(θ)=2m1i=0m(yihθ(xi))2
​ 很多教材上给出的是误差平方和,其实都可以,无非就是分母不一样。这里均方根多除一个2是方便梯度下降求偏导。

求解方式

​ 梯度下降,直观理解就是代价函数曲线上的“下山过程”,其实就是对代价函数求偏导。又分为批量梯度下降BGD、小批量梯度下降MBGD、随机梯度下降SGD

​ 批量梯度下降法是最原始的形式,它是指在每一次迭代时使用所有样本来进行梯度的更新。优点是一次迭代是对所有样本进行计算,可以利用矩阵并行计算。缺点是当样本数量级很大时,整个训练过程会非常慢。

​ 小批量梯度下降是机器学习和深度学习最为常用的优化方法。是对BGD和SGD的一个折中。其思想是每次迭代使用batch_size个样本来对参数进行更新。优点是通过矩阵运算,每次在一个batch上优化参数并不会比单个数据慢太多。其次是每使用一个batch可以大大减小收敛所需要的迭代次数,同时可以使收敛到的结果更加接近梯度下降的效果。缺点就是batch_size阈值的选择。

​ 随机梯度下降是每次迭代使用一个样本来对参数进行更新。使得训练速度加快。优点是由于不是在全部训练数据上的损失函数,而是在每轮迭代中,随机优化某一条训练数据上的损失函数,这样每一轮参数的更新速度大大加快。缺点是准确度下降,由于单个样本并不能代表全体样本的趋势,所以很可能会局部最优甚至无法做到线性收敛。

优缺点 & 适用场景

  • 一元线性方程比较简单,欠拟合风险较大,所以一般不用。

多元线性回归

百度百科

​ 在回归分析中,如果有两个或两个以上的自变量,就称为多元回归。事实上,一种现象常常是与多个因素相联系的,由多个自变量的最优组合共同来预测估计因变量,比只用一个自变量进行预测或估计更有效,更符合实际。因此多元线性回归比一元线性回归的实用意义更大。

白话原理

​ 形如: y = w 1 x 1 + w 2 x 2 + w 3 x 3 … + b y = w_1x_1 + w_2x_2 + w_3x_3 \ldots + b y=w1x1+w2x2+w3x3+b 。相比于一元线性回归,多元线性回归(即多变量回归)更加符合实际,因为我们实际需求大多都是多个特征的。同样的我们需要求解一组参数 w w w 和 偏置 b b b,来使得预测值和真实值的误差最小。当w转成向量后可得预测函数如下:
h ( x ) = w T x + b h(x) = w^Tx + b h(x)=wTx+b

注:很多文献上都喜欢用 θ θ θ 表示权重向量,即上述的 w w w

代价函数

​ 均方误差

求解方式

​ 梯度下降、最小二乘

​ 最小二乘的思想就是求多元函数极值,说白了就是对各个 w w w求偏导然后使偏导为0。这样P个参数就对应P个方程需要求解,可以说计算量比较大。而梯度下降可以看做是更简单的一种求最小二乘法最后一步解方程 的方法。

关于最小二乘、梯度下降、牛顿法的总结:

https://cloud.tencent.com/developer/article/1433814

优缺点 & 适用场景

  • 优点是不需要对数据进行归一化处理,原始数据进行计算参数,不存在量纲的问题。

  • 缺点是计算复杂度较高,在特征比较多的时候,计算量很大。

局部加权线性回归

百度百科

​ 局部加权线性回归(Local Weights Linear Regression)也是一种线性回归。不同的是,普通线性回归是全局线性回归,使用全部的样本计算回归系数。而局部加权线性回归,通过引入权值(核函数),在预测的时候,只使用与测试点相近的部分样本来计算回归系数。

白话原理

​ 线性回归的一个问题是有可能出现欠拟合,因为它求的是具有最小均方误差的无偏估计,欠拟合是无法达到我们想要的预测效果,所以有些方法允许在估计中引入一些偏差,从而降低预测的均方误差。局部线性加权的思想是对待预测点附近的每个点赋予一个权重,然后在带权的样本上基于最小均方误差来进行回归。

​ 换句话说,在局部加权线性回归中,我们在预测前对于每个点都赋予一个权重,离需要预测点越近的点权重越大,反之权重越小。其它思想和多元线性回归基本一致,加权体现在代价函数上。

代价函数
J ( θ ) = 1 2 m ∑ i = 0 m w ( i , i ) ( y i − h θ ( x i ) ) 2 J(\theta) = \frac{1}{2m}\sum_{i = 0} ^mw_{(i, i)}(y^i - h_\theta (x^i))^2 J(θ)=2m1i=0mw(i,i)(yihθ(xi))2
h θ ( x ) h_{θ}(x) hθ(x) 是我们的预测值,即: h θ ( x ) = θ T x i h_{θ}(x) = θ^Tx_i hθ(x)=θTxi

w ( i , i ) w_{(i, i)} w(i,i) 就是权重,我们一般使用高斯核函数:
w ( i , i ) = e x p ( − ( x i − x ) 2 2 k 2 ) w_{(i, i)} = exp(-\frac{(x_i - x)^2}{2k^2}) w(i,i)=exp(2k2(xix)2)

  • 其中,x是我们的要预测的点,k是我们需要指定的参数,他控制了权值随距离变化的速率。从公式可以看到,加权函数只有一个系数,那就是分母上的K,当K取很小时, e x p exp exp 得到的很多值均趋于0,此时只有很少一部分样本用于训练,而当K取很大时, e x p exp exp 的值不会很快趋于0,从而会有一大部分点用于训练,我们可以通过调整K的值,决定这个局部的大小究竟是多大。
    • k值越大,权重随距离变化的速率越小,预测某个点时用到的数据点就更多。
    • k值越小,权重随距离变化的速率越大,预测某个点时用到的数据点就更少。
    • k值的选择是很重要的,k值选择过大,可能出现过拟合问题,k值选择过小,可能出现欠拟合问题。
    • 经验来说可调范围区间为:k ∈ [0.01, .01],K=1可以说加权对样本没什么影响。

求解方式

​ 梯度下降、正规方程

优缺点 & 适用场景

​ 优点就是通过核函数加权来预防欠拟合,缺点也很明显K需要调试。当多元线性回归过拟合的时候,可以尝试高斯核局部加权来预防过拟合。

多项式回归

百度百科

​ 多项式回归,回归函数是回归变量多项式的回归。多项式回归模型是线性回归模型的一种,此时回归函数关于回归系数是线性的。由于任一函数都可以用多项式逼近,因此多项式回归有着广泛应用

​ 研究一个因变量与一个或多个自变量间多项式的回归分析方法,称为多项式回归(Polynomial Regression)。如果自变量只有一个时,称为一元多项式回归;如果自变量有多个时,称为多元多项式回归。在一元回归分析中,如果依变量y与自变量x的关系为非线性的,但是又找不到适当的函数曲线来拟合,则可以采用一元多项式回归。

白话原理

​ 多项式回归是一元线性回归及多元线性回归的扩展。在原有线性方程的基础上增加了自变量x的几次项,可以说是变相的增加了特征。譬如一元多项式回归,当多项式项数为n时,相当于多了n个特征。多元多项式也是这个道理,所以就有种特征交叉的意思了。

​ 一元m次多项式回归方程如下:
y ^ = b + w 1 x + w 2 x 2 + … + w m x m \hat y = b + w_1x + w_2x^2 + \ldots + w_mx^m y^=b+w1x+w2x2++wmxm
​ 二元二次多项式回归方程如下:
y ^ = b + w 1 x 1 + w 2 x 2 + w 3 x 1 2 + w 4 x 2 2 + w 5 x 1 x 2 \hat y = b + w_1x_1 + w_2x_2 + w_3x_1^2 + w_4x_2^2 + w_5x_1x_2 y^=b+w1x1+w2x2+w3x12+w4x22+w5x1x2
代价函数

​ 均方误差

求解方式

​ 梯度下降、最小二乘

优缺点 & 适用场景

​ 当我们要拟合的是曲线而不是直线时,就可以用多项式回归。通过控制项数来用线性模型拟合非线性数据。相比于线性回归应用更加广泛,因为我们实际场景中的数据大多呈现非线性关系。因为项数的存在所以原始数据维度得到提高,使得方程更好的拟合高维的数据,提高模型的泛化能力。缺点就是多项式的项数是需要调试的。

Lasso回归 & Ridge回归

Lasso回归

百度百科

​ LASSO是由1996年Robert Tibshirani首次提出,全称Least absolute shrinkage and selection operator。该方法是一种压缩估计。它通过构造一个惩罚函数得到一个较为精炼的模型,使得它压缩一些回归系数,即强制系数绝对值之和小于某个固定值;同时设定一些回归系数为零。因此保留了子集收缩的优点,是一种处理具有复共线性数据的有偏估计。

白话原理

​ 就是在线性回归的基础上,代价函数里加了L1正则。

代价函数
J ( θ ) = 1 2 m   [   ∑ i = 0 m ( y i − h θ ( x i ) ) 2 + λ ∑ j = 0 n ∣ ∣ w ∣ ∣ 1    ] J(\theta) = \frac{1}{2m} \ [ \ \sum_{i = 0} ^m(y^i - h_\theta (x^i))^2 + \lambda \sum_{j=0}^n ||w||_1 \ \ ] J(θ)=2m1 [ i=0m(yihθ(xi))2+λj=0nw1  ]
求解方式

​ 坐标轴下降法、最小角回归法

​ 为什么lasso回归的求解方式不再是梯度下降、最小二乘?因为lasso回归对损失函数加了L1惩罚。L1范数用的是绝对值之和,导致损失函数有不可导的点,所以最小二乘、梯度下降、牛顿和拟牛顿就统统失效了。

因为实际应用中,不管是回归还是变量选择还是降维,lasso回归应用并不多,所以这里对坐标轴下降和最小角回归不做解释。

优缺点 & 适用场景

​ L1正则化可以使得一些特征的系数变小,甚至还使一些绝对值较小的系数直接变为0,所以对于高纬的特征数据,尤其是线性关系是稀疏的,就可以用lasso回归,也是起到一定的降维作用。

Ridge回归

百度百科

​ 岭回归(英文名:ridge regression, Tikhonov regularization)是一种专用于共线性数据分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法,对病态数据的拟合要强于最小二乘法

白话原理

​ 就是在线性回归的基础上,代价函数里加了L2正则。

代价函数
J ( θ ) = 1 2 m   [   ∑ i = 0 m ( y i − h θ ( x i ) ) 2 + λ ∑ j = 0 n ∣ ∣ w ∣ ∣ 2 2    ] J(\theta) = \frac{1}{2m} \ [ \ \sum_{i = 0} ^m(y^i - h_\theta (x^i))^2 + \lambda \sum_{j=0}^n ||w||_2^2 \ \ ] J(θ)=2m1 [ i=0m(yihθ(xi))2+λj=0nw22  ]
求解方式

​ 最小二乘、梯度下降

岭回归和lasso回归的区别

  • 相同:
    • 都可以用来解决线性回归的过拟合问题。
  • 不同:
    • lasso 可以用来做特征选择,而 ridge 不行。或者说,lasso 更容易使得权重变为 0,而 ridge 更容易使得权重接近 0。
    • 从贝叶斯角度看,L1 正则等价于参数 本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签