作者 | 台运鹏

几乎每个机器学习从业者都知道回归,其中一些人可能认为这没什么大不了的,只是从参数之间的切 换罢了。本文将阐明每种回归算法的细节,以及确切的区别。包括 :

  • OLS

  • Weighted Least Squares

  • Lasso

  • Ridge

  • Polynomial Regression

  • Logistic regression

  • Support Vector Regression

  • Elastic Net

  • Bayesian Regression

  • RANSAC

  • Theil Sen

  • Huber Regression

  • Decision Tree Regression

1. 介绍

我们的数据:   ,  我们打算从我们的数据集中训练一个模型,并 在未知的测试集中测试它。算法性能良好的标准是错误低(从预测值到实际值的距离)。当涉及回归任务 时,我们第一时间就会想到线性回归。

这个模型是线性的并且易于实现(图 1)。  被叫做斜率并且  被叫做截距。  解释了当  改变的时 候  改变的程度。  意味着随机错误(白色噪音),一般说来都会被省略。

2. OLS

在机器学习中,我们经常通过优化目标函数来找出最好的模型。OLS(Ordinary Least Squares) 充当 了一个很有效果的损失函数只要模型满足六个 OLS 的必要假设。那么它就能通过优化如下的函数来找到 具有最小方差的无偏差模型。

2.1 首要的假设

• 线性

换句话说,只有直线是可以的。如果  和  之间的关系是非线性的,比如  ,那么整个模型 就会烂掉。对付这种情况一般采用特征转换。  和  之间的关系会永远被改变如果采用这种方法。因此我们必须把  和  之间的 correlation 纳入考虑范围。我们可以通过计算  (决策系数)来 判断 correlation.  代表着我们能从  预测出  的能力。  的那一列,括号里是原来未经改变的 值(表 1),对于  也一样。注意我用  来生成了 10000 个随机点。  代表的是噪音并且它的范围是从 0 到 1。  遵循随机均匀分布。如果要更进一步实施特征转换, 多项式回归是一个不错的选择。

图1. 普通回归模型

表1. 改变结果

如表 1 所示,应用特征变换时  发生变化,目的是找到具有最佳  的线性模型。请注意,线性 表示是  相对于改变后的  。如果是这样,原始  和预测的  的散点图应适合原始分布图。此假设对于线性回归最为重要,并且可以解释当  和  不满足线性关系的时候用 Ridge 或 Lasso 的 效果也很差。

多项式回归用多项式替换原始的  ,以实现比以前更线性的关系或出于某些原因更改特征。有趣的 是,它有点像泰勒展开式。当您的模型违反了线性,然后您可以尝试所有多项式回归找到最佳的,这 是一个很好的方法。

如果特征维度是 2 维

-

-

图2. 可视化改变结果

-

常量误差方差这意味着残差是均匀分布的,在统计上称为无异方差当我们应用模型时,通过观察  可以得到一堆预测值。然后我们可以计算出预测值和真实值之间的误差。我们还可以计算误差的 方差。如果误差遵循正态分布,则其方差为常数(  )。此外,其分布是对称的。残差的分布也应 该是均匀和对称的,因此我们可以使用残差图进行检测(图 3),并且 QQ 图可以检测误差是否遵 循正态分布。我使用的数据可以从这里下载:https://www.kaggle.com/quantbruce/real-estate-price-prediction。

我将 X2 house age 设为  ,将 Y house price of unit area 设为  。请注意,我删除了  等于 0 的点。我选择了 200 个点作为研究。

上面第2个式子表示标准正态分布, ,。 如图 3 所示,如果噪声遵循正态分布,则分布应均匀, 如图(b)所示。直方图应该像钟形曲线。我们可以小心得出结论,即如果误差遵循正态分布,则噪 声分布应适合 Q-Q 图中的线。

在弄清楚异方差性之后,我们不知不觉会想到一个问题,即异方差如何影响我们的模型以及如何对 其进行改进。最常见的方法是尝试特征转换,例如 Log。如图 4 所示,它可以在某种程度上使我们 的残差更加稳定。它始终是尝试的一种选择,但不是解决问题的有效方法。

Weighted Least Squares 的性能比 OLS 好得多。相对而言,当  都等于 1 时,应该是 OLS。在 OLS 中,模型给每个点同样的注意力。但那是它位于无异方差下,而我们遇到更多有异方差的场景。我们的想法是给那些噪音小的点更多注意。因此,模型给那些点更大的权重

注意,我为前 20 个权重选择了不同的值,其他权重值始终为 1。不同的权重等同于噪声的异常分 布。如表 2 所示,模型仍为无偏见的,也就是说,截距始终为正确的。但是,斜率的标准偏差会急 剧变化。因此,我们无法使用它来得出推论并检验关于斜率的假设。

如图 5 所示,图(a)表示权重 =1 时 OLS 是 MLS 的特例,而图(b)和图(c)表示权重变化时, 截距几乎保持不变。

图3. 正态与非正态

表2. 斜率和截距

而且,我们可以应用 Box Cox 特征转换,它可以使数据更接近正态分布。可以从这里下载数据:https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv。我选择 total sulfur dioxide 作为 X,quality 作为 y. 因此,它可以减轻异方差(图 6)。请注意,并 非总是如此一个很好的解决方案。但是我们可以在 WLS 之前尝试使用它们。有时候,情况可能更 糟(图 7)。

• 错误独立分布(无自相关)。例如,您要预测股票市场中的市场份额。但错误是相关的,而它们本 应为  (独立分布)。当发生金融危机时,股票的份额将在未来几个月内减少。可以通过 Durbin Watson Test(表 3)或绘制 textbf 自相关图进行检测。如果 y 的值位于在  ,则为正相关。如 果值等于 0,则它们的含义是无相关。否则,它们的含义是负相关

表3. Durbin Watson Test

自相关会影响标准差,但不太可能影响模型的系数和截距。

有两种常见的解决方法。第一种方法是添加被忽律的变量。例如,您想按时间预测股票表现。无疑, 该模型具有很高的自相关性。但是,我们可以添加 S & P 500。希望它可以减轻自相关。第二种方 法是改变模型函数。您可以将线性模型转换为平方模型。另外,也别忘了多项式回归

无多重共线性。如果自变量彼此相关,则数据中存在多重共线性。我们可以使用方差膨胀因子(VIF) 进行检测(   是决策系数)。如果值为 1,表示预测变量之间不存在多重共线性。如果值大于 5,则 表示存在潜在的多重共线性。如果值大于 10,则表示明显的多重共线性。

图4. Log 和残差之间的关系

我们回归模型的目标是通过找到合适的系数来找出自变量(  )与 因变量(  )之间的关系。但是 当存在多重共线性时,该系数无法被解释出来。我们实际上不知道确切的关系是什么。但是,如果 我们只想进行好的预测,它仍然有效。并且如果多重共线性的程度适中,则不必太在意。我们可以 删除高度相关的变量或增加样本容量。

• 无外生性。如果我们选择的  对  几乎没有影响,这意味着真实的预测不是基于  而是  ,则存 在外生性。最佳解决方案是要搞清楚到底哪些因素会影响我们的预测值,然后选择合适的  。

3. Lasso Regression

3.1 Background

在机器学习中,我们采用我们的模型通过对大量数据进行训练来预测值。但是,对过多数据进行训练 会产生一个副产品,即机器可能会记住所有训练数据。当涉及到新的测试数据时,我们的机器无法对其进 行正确的估算,这称为过拟合。实际上,我们不知道到底需要多少数据。如果缩减数据量,则可能会导致 textbf 欠拟合。因此,我们必须更改模型。

3.2 稀疏方法

在这里,我们使用均方误差。最初,我们需要使模型的误差尽可能小,这可能会导致复杂的模型(太多系数)。通常,如果我们的模型是太复杂了,它的泛化能力很低。为了解决这个问题,出现了正则化。  代表我们要惩罚模型的程度(变简单)。通过添加 L1 常项,我们将选择一个误差最小的简单模型,该模型与奥卡姆剃刀原则一致。L1 可能把许多系数设置为  。不可避免地,某些特征会因此失去对  的影响, L1 真正要做的是执行特征选择。

3.3 震荡

梯度下降在使目标函数最小化中起着关键作用。在优化过程中,L1 总是减去常数。因此,当数据值 很小时,L1 尤为重要。L1 执行特征选择,不稳定并可能导致震荡

图5. 中间那条显示 OLS 和 MLS 拟合情况数据,其他是两个算法的预测值范围

4. Ridge Regression

4.1 背景 

尽管 Lasso 能够处理过拟合,但它缺乏稳定性。因此,Ridge 是 Lasso 的替代方案。

4.2 稳定性 

为什么 Ridge 比 Lasso 更稳定?例如,通过最小二乘法得到模型  。这很复 杂。使用 Lasso 可以得到  虽然我们可以通过 Ridge 获得  。Ridge 要求每个系数都尽可能小,但是不会激烈到设置某些系数为 0。

4.3 更好的选择

同样,它使用梯度下降。但是 Lasso 和 Ridge 之间的区别是 Ridge 不是减去常数而是系数向量。假 设我们在一座山顶上,Lasso 所做的只是往前挪了一小步,而 Ridge 就看哪个方向比较陡,就直接迈出一 大步,因此,Ridge 比 Lasso 更快。当值很大时,Ridge 应该是比 Lasso 更好的选择。总而言之,从稳定 性和速度的角度来看,Ridge 比 Lasso 来得好,如图 8。

图6. Box Cox 改变可能有帮助

5. Elastic Net Regression

Elastic Net 是 Ridge 回归和 Lasso 回归之间的中间地带。它将 Lasso 的损失函数与 Ridge 的损失函数混合在一起。它的参数  控制混合比例。如果  ,则为 Ridge.If   ,是 Lasso。那么什么 时候使用 Lasso,Ridge 或 Elastic Regression?在大多数情况下,Ridge 是一个很好的默认设置。如果您 的数据具有太多特征(例如,深度学习),则某些特在没有意义。因此,我们希望删除某些特在。但实际 上,我们不知道要删除哪些特征。Lasso 充满风险。如果某些特征是相关的(多重共线性),则 Elastic Net Regression 是最佳选择。它不太可能将某些参数设置为零。它可能对某些相关的自变量进行聚类

6. Robust Regression

6.1 Background 

数据并不总是很好,可能包括一些异常值。因为机器不知道存在异常值,所以它仍然给予它们同样的 关注。因此,异常值可能会破坏模型。这就是 Robust Regression 被提出的原因。

6.2 RANSAC

图7. Box Cox 改变可能更糟糕

随机抽样一致是鲁棒回归模型之一。通过不断重新估计,RANSC 使用共识集(Inliers Set)的所有 成员来提高准确性。

6.3 Theil-Sen Regression 

这是一种无参数方法,这意味着它无需对数据的分布进行任何假设。它还具有一个临界情况(通常为 29.3 % ),表明它只能容忍异常值分布的最大值为 29.3 %。

6.4 Huber Regression 

当值很大时,Huber 会将其损失函数转换为线性损失,以最大程度地减少对模型的影响。  作为阈值, 决定多大的数据需要给予线性损失。

7. Bayesian Regression

7.1 Bayesian Theorem 

例如,我们将采用一个模型来区分电子邮件是正常的还是垃圾邮件。因此,我们的模型所面对的是它必须对未知电子邮件进行预测。我们的数据包含 100 封电子邮件,其中 10% 是垃圾邮件。因此,垃圾邮 件的百分比为 10 。但这绝对不是全部。在贝叶斯中,它称为前验概率,这代表着分布的基础假设,同时 这也是贝叶斯开始的地方。在算法开始时,贝叶斯是有偏见的,所以该模型很容易受到一开始的数据分布的影响。例如,如果我们只有 10 封普通电子邮件,我们未来是不可能不收到一封垃圾邮件的。换句话 说,如果我们的数据量很小,就不太建议实施贝叶斯算法。但是,不断进行数据训练,我们最终应该会获 得理想的结果。下面的等式,P(B)是归一化项,P(A)是前验概率。 () 是后验概率。总而言之, 当我们拥有大量数据时,贝叶斯算法可能是一个很好的选择,它可以像其他算法一样准确地执行。

7.2 MLE 

一般来说,我们的目标是找出真正的数据分布,这几乎是不可能的。因此,我们需要一个与问题域的 数据分布更接近的数据分布。MLE(最大似然法)。它表示我们希望最大化从假设分布采样出真正分布在数据集中的数据的概率。(图 9)

图8. Lasso VS Ridge

7.3 MAP 

通常,我们可以使用 MAP 最大化后验概率)替换 MLE。它基于贝叶斯定理。MAP 是 贝叶斯回归 (下式)的基础。贝叶斯回归不像其他算法,它不会生成单个值,而是生成可能的分布范围。在大多数 情况下,MLE 和 MAP 可能会得到相同的结果。但是,当 MAP 的假设为与 MLE 不同,它们无法获得相 同的结果。当先验概率服从均匀分布时,它们可以获得相同结果。从另一个角度来看,如果我们对数据 有精确的理解,则贝叶斯回归为一个很好的选择,因为它可以作为先验概率,或者我们可以像 Weighted Least Errors 一样给每个不同的选择不同的权重。有趣的是,前验分布可以看作是正则化或模型的偏见, 因为前验分布可以是改为 L2 范数,这种模型也被称为贝叶斯岭回归。下式表示给定模型 m,输 出 y 的概率。以及  和  (标准差)是任意值。

8. Support Vector Regression

8.1 最大化边际 

支持向量机最初是为分类问题发明的。与其他算法不同,SVM 不仅需要正确分类所有数据,还需要 数据到超平面的距离最大。如果我们的  。我们的线性模型为  。数据点,离超平 面最经的分别带有正负标签的点到超平面的距离相加为 边界(  )。然后将 SVM 转换为最大化边界。我们可以将最大化  变为最小化   。因为  大于 0,  比  大。除分类线外,SVM 还具有两条虚线。SVM 有两种类型。所有数据点都必须正确分类,这被称为 Hard Margin,这是不现 实的,因为 Hard Margin 容易导致过拟合,而 Soft Margin 可以容忍一些错误,此方法听起来更可靠,与实际情况相符。

图9. 贝叶斯回归

8.2 对偶问题 

通常,我们可以通过拉格朗日乘子法  将这个极值问题转化为对偶问题。然后我们可以计算每个参 数的偏导数(此处为 w,b)并将其设置为 0,以进一步求出 w,b 的值。

然后我们将 w,b 替换为确切的值。当 , 转置时,它们保持不变,因为它们是数值。我们引入 , 可以更好地区分它们。

我们可以将其用于目标函数。注意,对偶问题与原问题所求相反。

8.3 核技巧 

在大多数情况下,数据在 2D 中是不可分离的。在多项式回归中,我们将数据映射到高维。类似地, 核函数可以用来解决这种问题,这里我们用  来代表被映射后的向量。因此,一切都焕然一新。

但是在大多数情况下,映射后的维度太大,以致于我们无法计算  。这就是为什么我们 需要一个核函数的原因。总而言之,SVM 受核函数约束。如果我们将数据映射到错误的维度,那么一切 都会坏掉!通常,在处理文本数据时,我们会优先使用线性核

表4. 常见核函数

我们打算最大化边界,并尽可能减少错误。最初,我们采用 0-1 损失。

然后我们的目标函数如下所示。C 是一个常数,描述了损失函数的重要性。如果 C 趋于正无穷大,则 意味着不允许发生训练数据上的错误。但是,问题是我们无法用梯度下降解决  ,因为它不是凸函数且 不连续。因此,我们提出了一些替换它的功能(替代损失)。

在这里,我们采用 Hinge Loss 来代替。

另外,Hard Margin 总是很烂。Soft Margin允许少量错误发生。  显示预测与约束的不一致程度。

8.4 Regularization 

简而言之,  是结构性风险,其余的是经验性风险。通常来说,  表示模型具备的特征,这里我们要最大化边界。  。它可以看作是 正则化的一种,旨在减小假设空间的规模。

8.5 SVR 

在常见的回归任务中,如果预测完全等于标签,则损失等于 0。有趣的是,支持向量回归可以容忍  偏差,这意味着如果我们的预测与真实标签之间的距离大于  ,则其损失会超过 0(图 10)。

9. Logistic Regression

9.1 Sigmoid 函数 

如果输入为正,则输出大于 0.5; 如果输入为负,则输出小于 0.5。Sigmoid 函数能够将所有数据映射 到 (0, 1)。我们可以将输出视为概率。请注意,逻辑回归不用于回归任务,而是用于分类问题。其输出表 示每个可能的标签可能性。在二元逻辑回归中,  。

9.2 损失函数

图10. SVR

这里我们将对数损失作为损失函数。我们可以得出一个结论:如果我们的标签为 1,则我们的预测趋 向于更趋近于 1,损失很可能减少,而我们的预测趋于于趋近于 0,则损失将急剧增加。

但是,如果损失函数看起来像这样,就不可能在其上实现梯度下降。注意这里  。下 面的等式等同于上面的等式。  可能会加快计算速度。

10. 结论

10.1 了解你的模型 

许多模型不是即插即用的。它有一些约束,只有满足他们的假设,它们才能表现良好。因此,了解模型背后的内容比盲目地应用模型更重要。此外,当面临难题时,您应该对可以尝试的算法有一个完整的了 解。

10.2 数据第一位 

机器学习问题不是获取数据和应用模型。给模型提供什么样的数据对模型的最佳性能起关键作用。如果对模型了解得很少,就无法理解什么样的数据正是您的模型需求,您无法进一步预处理数据。最终,您 将永远不会让模型的性能产生任何提升。这是浪费时间。


推荐阅读

(点击标题可跳转阅读)

干货 | 公众号历史文章精选

我的深度学习入门路线

我的机器学习入门路线图

重磅

AI有道年度技术文章电子版PDF来啦!

扫描下方二维码,添加 AI有道小助手微信,可申请入群,并获得2020完整技术文章合集PDF(一定要备注:入群 + 地点 + 学校/公司。例如:入群+上海+复旦

长按扫码,申请入群

(添加人数较多,请耐心等待)

感谢你的分享,点赞,在看三  

深入讨论机器学习 8 大回归模型的基本原理以及差异!相关推荐

  1. 【机器学习基础】深入讨论机器学习 8 大回归模型的基本原理以及差异!

    作者 | 台运鹏 几乎每个机器学习从业者都知道回归,其中一些人可能认为这没什么大不了的,只是从参数之间的切 换罢了.本文将阐明每种回归算法的细节,以及确切的区别.包括 : OLS Weighted L ...

  2. 机器学习分类与回归模型

    一.KNN算法 1.既可用于分类也可用于回归 2.主要思想是找到预测样本中最近的K个邻居(一般通过欧式距离或者曼哈顿距离公式计算),用K个邻居的目标值中占多数的目标代表预测样本的目标 分类:K个邻居投 ...

  3. 机器学习之逻辑回归模型

    文章目录 分类思想 逻辑回归模型公式 公式推导 sigmoid函数 避免过拟合 降低模型复杂度 加入L1/L2正则项 正则化的作用 增加训练数据 使用逻辑回归模型进行多分类的几种方式 One vs O ...

  4. 【机器学习技巧】回归模型的几个常用评估指标(R2、Adjusted-R2、MSE、RMSE、MAE、MAPE)及其在sklearn中的调用方式

    目录 回归模型评估的两个方面 1. 预测值的拟合程度 2. 预测值的准确度 以糖尿病数据集的回归模型为计算示例-计算各指标 1. 决定系数R2 1.1 R2求解方式一----从metrics调用r2_ ...

  5. 机器学习 对数几率回归模型(Python实现)

    本文介绍对数几率回归模型,是一个典型的二分类任务学习模型 书接上回,我们可以对一个数据集得到它的回归方程 我们是这样去解读回归方程的:在相关属性下对样例的某一特征的度量 我们根据回归方程得到的特征度量 ...

  6. 机器学习笔记(五)回归模型

    1.线性回归模型 1.广义线性模型 也就是x和y的线性组合也就是: y = w1x1+w2x2-+wnxn+b coef_是系数矩阵w =[w1,w2-wn],intercept_就是截距 2.普通最 ...

  7. 机器学习——常用的回归模型性能评价指标

    对于回归而言,模型性能的好坏主要体现在拟合的曲线与真实曲线的误差.主要的评价指标包括:拟合优度/R-Squared,校正决定系数(Adjusted R-square),均方误差(MSE),均方根误差( ...

  8. 机器学习 | LR逻辑回归模型

    逻辑回归(Logistic Regression,简称LR)名为"回归"却是用来分类工作.在线性数据上表现优异的分类器. 视频教程:第07讲:逻辑回归是线性分类器的佼佼者  LR是 ...

  9. 【机器学习】逻辑回归模型

    应用场景 推荐系统:分析购买某类商品的潜在因素,判断该类商品的购买概率.挑选购买过的人群A和未购买的人群B,获取两组人群不同的用户画像和行为特征数据.建立用户行为模型.商品推荐模型实现产品的自动推荐. ...

  10. 七月算法机器学习笔记5 回归模型

    七月算法(http://www.julyedu.com) 12月份 机器学习在线班 学习笔记

最新文章

  1. 一致代价搜索_谷歌工程师发布最新技术ScaNN:可实现高效的向量相似性搜索
  2. 使用jconsole监控JVM内存
  3. JS写的一个猜拳游戏
  4. OpenDNS,独特的免费DNS
  5. 使用Python+turtle绘制同心圆
  6. 1、kali的安装与环境配置
  7. 06软件构架实践阅读笔记之六
  8. linux 查看新增文件夹记录_微信7.0.23测试版,新增查看访客记录,朋友圈内容能折叠?...
  9. Vue.js学习笔记(一) - 起步
  10. 西门子博图怎么导入库文件_【傻瓜教程】博途中库的建立与使用方法(工控公开课 今晚8点 老地方 不见不散!)...
  11. opencv学习 给视频添加文字
  12. c语言 文件指针移动一位,c语言怎样移动文件指针到制定位置?
  13. AndroidStudio报错 AAPT: error: resource xxx (aka com.example.ouchaixun:drawable/back) not found
  14. LSL-- Types
  15. 7-2 买电影票 (C语言)
  16. 影视剪辑,自学剪辑的转场与准则,掌握一门剪辑技能
  17. JAVA版微信支付V3—JSAPI支付
  18. TI公司示例下载方式
  19. app.json: [“subpackages“][0][“root“] 字段需为 目录
  20. percona-toolkit的安装及简介

热门文章

  1. JVM虚拟机第八章:堆
  2. python不定积分教学_python 求定积分和不定积分示例
  3. Hack The Box——Blunder
  4. python虚拟变量回归_Python中使用虚拟变量的OLS最佳解决方案?
  5. JAVA项目 畅购商城 框架搭建
  6. 【句库】英语论文写作之好词好句积累
  7. 用计算机做电子贺卡送祝福,全国信息技术优质课一等奖电子贺卡送祝福教案.doc...
  8. c语言6月份考试时间,六级几点考试 考试时间明细
  9. 某种草电商App签名算法解析(一)
  10. 新浪云应用 mysql_云应用开发之新浪SAE读写云端数据库MySQL