社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

机器学习|你应该掌握的7种回归技术!

极市平台 • 11 月前 • 227 次点击  
↑ 点击蓝字 关注极市平台
转载自丨沈浩老师
来源丨https://www.analyticsvidhya.com/blog/2015/08/comprehensive-guide-regression/
编辑丨极市平台

极市导读

 

这篇文章帮助我们对回归方法的广度有所了解,以及如何在不同的数据条件下选择合适的回归技术,而不是将线性和逻辑回归应用于遇到的每个机器学习问题。 >>加入极市CV技术交流群,走在计算机视觉的最前沿

前言

机器学习者对线性回归和逻辑回归这两种分析方法一定不陌生,可以说它们是最重要的回归分析技术,但千万不要认为回归分析仅限于这两种方法。事实上,有无数种形式的回归,每种形式都有其自身的重要性和最适合应用的特定条件。在本文中,我们将简单地介绍7种最常用的回归类型,一起来看看吧~

1  什么是回归分析?

回归分析是一种预测建模技术,它研究的是因变量(目标)和自变量(预测因子)之间的关系。通常将这种技术用于预测分析、时间序列建模以及发现变量间的因果关系。例如,我们要研究司机的鲁莽驾驶和其交通事故数量之间的关系,最好的方法就是回归分析。

回归分析是建模和分析数据的重要工具。其核心思想是,通过将曲线或直线拟合到数据点,以使各数据点到曲线或直线的距离差最小化。太抽象?没关系,我们将在下文中详细解释这一点。


2  为什么要使用回归分析?

如前所述,回归分析通常用于估计两个或多个变量间的关系。举一个简单的例子,假设你要根据当前的经济状况估算一家公司的销售额增长情况,你手中的公司最新数据显示,销售额增长约为经济增长的2.5倍,那么,使用回归分析,我们就可以根据当前和过去的数据预测公司未来的销售情况。

使用回归分析主要有以下优点:

① 它可以表明自变量和因变量之间的显著关系

② 它可以表明多个自变量对一个因变量的不同影响强度

③ 回归分析还允许我们去比较用不同尺度衡量的变量之间的相互影响,如价格变化与促销活动数量之间的联系

这些优点都有助于我们排除无关变量,并评估出一组用于构建预测模型的最佳变量。


3 七种常见的回归模型

有各种各样的回归技术可用于进行预测分析,这些技术主要从自变量个数、因变量类型、回归线形状这三个方面度量。

使用这些参数的组合,我们甚至可以创造出一个从未被使用过的回归模型。但现在,让我们先来了解一下最常见的回归方法吧~

1. 线性回归(Linear Regression)

线性回归通常是人们在学习预测建模时首选的技术之一。它的因变量是连续的,自变量可以是连续的也可以是离散的,并且回归线是线性的。

线性回归使用最佳拟合直线(也就是回归线)在因变量(Y)和一个或多个自变量(X)之间建立一种关系。它由方程式Y=a+b*X+e表示,其中a表示截距,b表示直线的斜率,e是误差项。这个方程可用于根据给定的预测变量来预测目标变量的值。

一元线性回归和多元线性回归的区别在于,多元线性回归有(>1)个自变量,而一元线性回归通常只有1个自变量。

那么,我们如何得到一个最佳的拟合线呢?使用最小二乘法可以轻松完成。最小二乘法也是用于拟合回归线最常用的方法。它通过最小化每个数据点到线的垂直偏差的平方和来计算观测数据的最佳拟合线。由于偏差先平方再相加,所以正值和负值之间不会抵消。

我们可以使用R-square指标来评估模型性能。在使用线性回归时,我们需要注意:

① 自变量和因变量之间必须要有线性关系

②  多元线性回归存在多重共线性,自相关性和异方差性

③ 线性回归对异常值非常敏感,它会严重影响回归线,并最终影响预测值

④ 多重共线性会增加系数估计值的方差,并使得估计对模型的轻微变化也非常敏感,从而导致系数估计值不稳定

⑤ 在有多个自变量的情况下,我们可以使用向前选择法,向后剔除法和逐步筛选法来选择最重要的自变量

2. 逻辑回归(Logistic Regression)

逻辑回归用于计算“事件=Success”和“事件=Failure”的概率。当因变量是二元变量(1/0,真/假,是/否)时,我们应该使用逻辑回归。其中,Y的取值范围是0到1,可以用以下等式表示:

odds=p/(1-p)=事件发生的概率/事件不发生的概率

ln(odds) = ln(p/(1-p))

logit(p) = ln(p/(1-p)) = b0+b1X1+b2X2+b3X3....+bkXk

在上式中,p表示具有某个特征的概率。你可能会问,为什么要在公式中使用对数log呢?因为在这里我们对因变量使用的是二项分布,就需要选择一个对这个分布来说最佳的连结函数——Logit函数。在上述方程中,通过观测样本的极大似然估计值来选择参数,而不是最小化平方误差的总和(在普通回归中使用的)。

划重点:

① 逻辑回归被广泛用于分类问题

② 逻辑回归不要求自变量和因变量间具有线性关系,它甚至可以处理各种类型的关系,因为它对预测的相对风险指数OR使用了一个非线性的log转换

③ 为了避免过拟合和欠拟合,我们应该使用所有重要的变量。确保这一点的一个很好的方法是,使用逐步筛选来估计逻辑回归

④ 逻辑回归需要很大的样本量,因为在样本数量较少的情况下,极大似然估计的效果还不如普通的最小二乘法

⑤ 使用的自变量不应该是相互关联的,即不具有多重共线性。然而,在分析和建模时,我们可以选择包含分类变量相互作用的影响

⑥ 如果因变量的值是序数,则称它为序逻辑回归

⑦ 如果因变量是多类的,则称它为多元逻辑回归

3. 多项式回归(Polynomial Regression)

如果一个回归方程的自变量的指数大于1,那么它就是多项式回归方程。可表示为:

y = a + b * x ^ 2

在这种回归技术中,最佳拟合线不是直线,而是一条用于拟合数据点的曲线(如下图所示)

划重点:

虽然可以尝试拟合一个更高阶的多项式以获得较低的误差,但这可能会导致过拟合。你需要经常画出关系图来查看拟合情况,并确保既没有过拟合又没有欠拟合。下面是一个图例,可以帮助理解:

尤其要注意向两端寻找曲线点,看看这些形状和趋势是否有意义,高阶多项式最终可能会产生奇怪的结果。

4.逐步回归(Stepwise Regression)

当要处理多个自变量时,我们可以使用这种形式的回归。在这种技术中,自变量的选择是在一个自动的过程中完成的,该过程无需人工干预。具体实现是通过观察R-square,t-stats和AIC指标等统计值来识别重要变量。

逐步回归可以通过基于指定条件一次添加或删除一个协变量来拟合回归模型。下面是一些最常用的逐步回归方法:

① 标准逐步回归,根据每个步骤的需要添加和删除预测变量

②  向前选择法,从模型中最重要的预测变量开始,然后在每一步中添加变量

③ 向后剔除法,从模型中的所有预测变量开始,然后在每一步中去除最低有效变量

逐步回归建模技术的目的是,使用最少的预测变量来最大化预测能力。这也是处理高维数据集的方法之一。

5.岭回归(Ridge Regression)

岭回归分析用于当数据存在多重共线性(自变量高度相关)时。在多重共线的情况下,即使最小二乘法(OLS)对每个变量是无偏的,它们的方差也很大,这使得观测值偏离了真实值。岭回归通过在回归估计中增加一个偏差度,来降低标准误差。

你还记得我们在上面提到的线性回归方程吗?它可以表示为:

y = a + b * x

添加误差项后,等式变为:

y = a + b * x + e

当有多个自变量时可写为:

y = a + b1x1 + b2x2 + .... + e

其中,e是误差项,即校正观测值和预测值间的误差所需的值

在线性方程中,预测误差可以分解为两部分:偏差和方差。它们中的一个或两个都可能会导致预测错误。在这里,我们将讨论由方差引起的误差。

岭回归通过收缩参数λ解决多重共线性问题。看下面的公式

这个公式有两个组成部分,第一个是最小二乘项,第二个是相关系数β平方和的λ倍,把它添加到最小二乘项以缩小参数,从而得到一个非常低的方差。

划重点:

① 除常数项外,岭回归的假设与最小二乘回归类似;

② 岭回归缩小了相关系数的值,但不会达到零,这表明它没有特征选择功能

③ 这是一个正则化方法,并且使用的是L2正则化。

6. 套索回归(Lasso Regression)

类似于岭回归,“套索”(Lasso,最小绝对收缩和选择算子)也会惩罚回归系数的绝对值大小。此外,它能够减少变化程度并提高线性回归模型的精度。看看下面的公式:

套索回归与岭回归的区别之处在于,它使用的惩罚函数是绝对值而不是平方。这导致惩罚值(或等于约束估计的绝对值之和)使一些参数估计结果等于零。使用的惩罚值越大,进一步估计会使得缩小值趋近于零。这将导致我们要从给定的n个变量中选择变量。

划重点:

① 除常数项以外,这种回归的假设与最小二乘回归类似

② 套索回归将系数缩小至接近零(等于零),将有助于特征选择

③ 这是一个正则化方法,使用的是L1正则化;

④ 如果一组预测变量是高度相关的,套索回归会选出其中一个并将其它变量收缩为零

7. ElasticNet回归

ElasticNet回归是套索回归和岭回归的结合,它使用L1和L2正则化器进行训练。当有多个相互关联的特征时,ElasticNet回归是很有用的,套索回归会随机挑选这些特征中的一个,而ElasticNet回归会都选

在套索回归和岭回归之间进行折中的一个优点是,它允许ElasticNet回归继承循环状态下岭回归的某些稳定性。

划重点:

① 在变量高度相关的情况下,它会产生群体效应

② 选择变量的数目没有限制

③ 它可以承受双重收缩

除了这7种最常用的回归方法,还有一些其他的回归模型,如Bayesian、Ecological和Robust回归。

4   如何选择正确的回归模型?

此前,你可能会有这样的结论:如果结果是连续的,就使用线性回归;如果是二元的,就使用逻辑回归。然而,在了解了另外5种回归方法后,在回归建模时你可能会有“选择困难症“。

别担心!还记得我们在前面提到的吗?在多种类型的回归模型中,我们需要根据自变量和因变量的类型、数据的维数以及数据的其它基本特征,来选择最合适的方法。以下列出了一些在选择时需考虑的关键因素:

① 数据探索是预测建模必不可少的一部分。在选择合适的模型之前,比如确定变量的关系和影响时,它应该是你进行的第一步

② 我们可以通过分析不同指标参数,如R-square、调整后的 R-square、AIC、BIC以及误差项等,来比较不同模型的拟合程度。另外也可以使用Mallows’ Cp准则,通过将模型与所有可能的子模型进行对比,检查在你的模型中可能出现的偏差

③ 交叉验证是评估预测模型的最佳方法。将数据集分成训练集和验证集,使用观测值和预测值之间的一个简单均方差可以衡量你的模型的预测精度

④ 如果数据集中有多个混合变量,那么就不应该使用自动模型选择方法,毕竟你应该不想同时把所有变量放在一个模型中

⑤ 取决于你的目的,与具有高度统计学意义的模型相比,功能较弱的模型更易于实现

⑥ 在高维数据集,以及数据集变量间有多重共线性的情况下,回归正则化方法(套索回归、岭回归和ElasticNet回归)效果很好


公众号后台回复“极市直播”获取100+期极市技术直播回放+PPT

极市干货

极视角动态极视角亮相BEYOND Expo,澳门特别行政区经济财政司司长李伟农一行莅临交流 极视角助力构建城市大脑中枢,芜湖市湾沚区智慧城市运行管理中心上线!
数据集:60+开源数据集资源大合集(医学图像、卫星图像、语义分割、自动驾驶、图像分类等)
多模态学习CLIP:大规模语言-图像对比预训练实现不俗 Zero-Shot 性能ALBEF:图文对齐后再融合,借助动量蒸馏高效学习多模态表征


点击阅读原文进入CV社区

收获更多技术干货

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/156016
 
227 次点击