当前位置:首页 > 教育综合 > 正文

对于线性回归问题,如果用到过多或过少的多项式特征,容易出现什么现象

机器学习系列(二十三)——过拟合和欠拟合问题

有了多项式回归的方式,我们就可以对非线性的数据做拟合了,不过,复杂度不够的多项式回归会导致欠拟合问题,而过度地使用多项式回归又会导致过拟合问题。
接下来直观地看一下什么是过拟合和欠拟合,生成模拟数据集:

用线性回归对该数据做训练:

用线性回归对该数据训练后的R方值为0.49,显然线性关系不明显,因此用线性回归是有很大误差的。不过添加多项式特征后,特征毕竟变多了,用R方衡量来衡量不同特征的模型不太直观,改用均方误差衡量:

线性回归的均方误差为3.03,再看一下二次多项式回归:

二次多项式回归的均方误差要减小很多,拟合的曲线如下图:

那更高次的呢?我们来试一试10次和100次。10次的情况:

10次幂的均方误差相比2次又小了。拟合曲线如下图:

100次的情况:

可见均方误差更小了,拟合曲线如下图:

不过上面只是一个100次幂的曲线将所有样本特征点包括进去,实际上这条连续曲线是这样的:

理论上我们提高多项式的次数可以任意精度拟合样本点,从而样本的均方误差可以非常非常小,但是样本误差更小就真的能更好地表达数据走势吗?从图像中看出显然不能,这种现象是就是过拟合(overfitting),而只用一次线性回归拟合的情况则是欠拟合。
机器学习主要解决的问题是过拟合,虽然过拟合的模型能使样本误差总体很小,但是在新的样本上表现却很差,泛化能力弱。而我们需要的是泛化能力强的模型而不是在样本上误差更小的模型。这也正是测试数据集的意义,将样本分为训练和测试数据集,只用训练数据fit模型,而用测试数据测试模型。如果模型能在测试数据集同样表现很好(有很小的误差),说明模型效果不错。可以测试,如果将样本划分为训练集和测试集,10次幂,100次幂的多项式回归虽然能使之在训练集上的误差更小,但是在测试集上误差却是越来越大的,这正是过拟合导致的。
线性模型

二次模型

10次模型和100次模型

从上述结果发现,在测试集上10次幂的误差已大于2次幂的,而100次幂的误差更是天文数字。综上所述,欠拟合是算法所训练的模型不能完整表述数据关系,而过拟合是算法训练的模型过多地表达了数据间的关系(往往是把噪音当成了特征,是噪音间的关系)。而我们需要寻找的是泛化能力最好的模型。

机器学习中有一个模型复杂度的概念,对于多项式回归,次幂越高则复杂度越高,对于knn算法来说,k值越小模型复杂度越高。相应地有模型复杂度曲线用于直观地反映模型复杂度和模型准确率的关系

不过模型复杂度曲线的绘制困难,这在后面的决策树再具体介绍。这里我们先用一个学习曲线来直观感受一下在多项式回归中,模型复杂度和训练效果的关系。
线性模型

封装学习曲线绘制函数:

绘制线性模型的学习曲线:

可以观察到随着训练的进行(这里是不断增加训练数据),训练集上的误差会慢慢积累,积累到一定程度稳定下来,测试集的误差先升后慢慢降低到一定程度稳定下来。
二次模型

二次模型与线性模型趋势一样,不过稳定的位置较一次低而且在测试集上的曲线和训练集上的曲线距离小,因为2次确实是最优的模型。

20次幂模型

测试集曲线和训练集曲线距离更大了,说明过拟合现象比较严重。我们要寻找的是有最好的泛化能力的模型。如何寻找最优的模型,使模型拥有优秀的泛化能力呢?这将在下篇介绍。

多重共线性会给回归分析带来什么影响


多重共线性就是说自变量间存在某种函数关系,会造成分析误差,使其对自变量效应的分析不准确。如果你的两个自变量间(X1和X2)存在函数关系,那么X1改变一个单位时,X2也会相应地改变,此时你无法做到固定其他条件,单独考查X1对因变量Y的作用,你所观察到的X1的效应总是混杂了X2的作用,这就造成了分析误差,使得对自变量效应的分析不准确,所以做回归分析时需要排除多重共线性的影响。
拓展资料:
一、多重共线性是指由于线性回归模型中解释变量之间的精确相关性或高度相关性,模型估计被扭曲或难以准确估计。
一般来说,由于经济数据的限制,模型设计不当,导致设计矩阵中解释变量之间的一般相关性。完全共线是罕见的。一般来说,它在一定程度上是共线的,即近似共线。
中文名称多重共线性外文名称多重共线性
(1) 完全共线下不存在参数估计
(2) OLS估计在近似共线性下是无效的
二、多重共线性增加了参数估计的方差。1/(1-r2)是方差扩展因子(VIF)。如果方差展开因子较大,则表明共线性较强。相反,由于公差是方差展开因子的倒数,公差越小,共线性越强。可以记住:宽容代表宽容,也就是允许。如果该值较小,则表示该值的允许范围较小,即越小,允许范围越小。共线性是一个负指标,预计不会出现在分析中。共线性和公差是联系在一起的。容忍度越小,容忍度越小,实际情况就越糟糕,共线的“恶棍”就越强大。此外,因为方差扩展因子是公差的倒数,所以它是相反的。
简言之,就是找到一种简单的记忆方法。
(3) 参数估计的经济意义是不合理的
(4) 变量的显著性检验没有意义,可能会从模型中排除重要的解释变量
(5) 模型的预测功能失效。方差越大,越容易使区间预测的“区间”越大,使预测失去意义。
应该注意的是,即使存在高度的多重共线性,OLS估计仍然具有良好的统计特性,如线性。然而,OLS方法不能提供统计推断中真正有用的信息。

spss进行线性回归分析时,相关系数都符合,但是显著性不符合,如何调整

线性回归时候,相关系数只是表明了各个系数之间的相关程度。但是自变量对因变量不显著的话,可能存在多重共线性、数据存在异常值、异方差的问题。

1、自变量存在共线性问题

在进行线性回归分析时,很容易出现自变量共线性问题,通常情况下VIF值大于10说明严重共线,VIF大于5则说明有共线性问题。当出现共线性问题时,可能导致回归系数的符号与实际情况完全相反,本应该显著的自变量不显著,本不显著的自变量却呈现出显著性。

解决方法:手动移除出共线性的自变量,先做下相关分析,如果发现某两个自变量X(解释变量)的相关系数值大于0.7,则移除掉一个自变量(解释变量),然后再做回归分析。逐步回归法,让软件自动进行自变量的选择剔除,逐步回归会将共线性的自变量自动剔除出去。

2、数据存在异常值,如果数据中存在极端异常值,会导致数据偏移对分析结果产生严重影响。如果回归分析出现各类异常,可通过比如描述分析、箱线图、散点图等方法,找出并处理掉异常值后再做分析。

解决方法:查看数据中是否有异常值,可通过箱线图、散点图查看,剔除异常值可通过SPSSAU“异常值”功能进行剔除。

3、异方差,如果模型存在明显的异方差性,会影响回归系数的显著情况,得到的回归模型是低效并且不稳定的。

解决方法:保存残差项,将残差项分别与模型的自变量X或者因变量Y,作散点图,查看散点是否有明显的规律性。如果有明显的异方差性,建议重新构建模型,比如对Y取对数后再次构建模型等。

如果排除了这些原因还是不显著,那么基本说明该变量对被解释变量无显著影响。

扩展资料

在做实证就是做回归等等方法的时候,一般就看中三点,一是相关系数,看因变量和自变量是否相关。二是拟合优度(R平方),看回归方程拟合的好不好,一般0.8以上就算拟合的比较好了。

三是自变量的系数对于因变量是否显著啦,P值小于0.05就说明自变量对于因变量是显著的。如果自变量的P值都比0.05大,那就说明自变量对于因变量是不显著的,这个自变量就没什么意义,所以如果变量比较多的情况下,还是做一下逐步回归。

如果变量比较少,做逐步回归就会导致最后有可能只剩下一个变量。逐步回归就是一个模型优化的过程,更加能解释自变量和因变量之间的关系,一般回归之后效果不好都要逐步回归来优化线性模型的。

多重共线性的典型表现是什么?判断是否存在多重共线性的方法有哪些

多重共线性的典型表现是,线性回归模型中的解释变量之间由于存在精确相关关系或高度相关关系而使模型估计失真或难以估计准确。由于经济数据的限制使得模型设计不当,导致设计矩阵中解释变量间存在普遍的相关关系。主要产生原因是经济变量相关的共同趋势,滞后变量的引入,样本资料的限制。判断是否存在多重共线性的方法有特征值,存在维度为3和4的值约等于0,说明存在比较严重的共线性。条件索引列第3第4列大于10,可以说明存在比较严重的共线性。比例方差内存在接近1的数,可以说明存在较严重的共线性。判断是否存在多重共线性的方法:1.方差膨胀因子:共线性主要考察的是自变量之间是否存在线性关系。所以很自然地,我们会考虑[公式]对[公式](除[公式]以外的其他自变量)的线性回归拟合以及由此得到的可决系数[公式]。如果自变量之间存在很强的线性关系,则[公式]会很大,甚至会接近1。[公式]即为方差膨胀因子。其值若大于10,则认为存在较强的共线性问题。2.常用的评价指标有两个:(1)容许度和膨胀因子(VIF)。容许度=1-Rj^2。其中的R是第j个自变量与其余变量进行回归时的判定系数。容许度越接近1,表示多重共线性越弱。膨胀因子:膨胀因子是容许度的倒数。膨胀因子越接近1(膨胀因子理论最小值是1),表示解释变量之间的多重共线性越弱,通常膨胀因子<10是弱多重共线性。若膨胀因子>=10,说明膨胀因子存在严重多重共线性。 在SPSS中可以通过在回归分析时勾选“统计”选项卡的“共线性诊断”自动计算容许度和膨胀因子,来判断自变量是否高度相关,是否存在多重共线性问题。 多重共线性的处理方法 若自变量之间存在多重共线性就需要对自变量进行处理后才能进行回归分析,处理方法为主成分分析(Principal Component Analysis,PCA)。 (2) PCA 主成分分析法是运用降维的思想将一组高度相关的自变量转换为一组相互独立的、不存在线性关系的变量,转换后的变量称为主成分,主成分可反映原始数据的大部分信息。一般在自变量个数太多或者存在严重相关关系时使用主成分分析对自变量进行处理,主成分分析一般作为研究中的一个中间环节。 3.常用统计量 主成分分析中的几个统计量: ⑴特征根。主成分特征根的大小可反映该主成分的影响力度,表示该主成分可以解释平均多少个原始变量的信息。例如若特征根λi=3.998,表示该主成分可以解释平均3.998个原始变量。若特征根λi<1表示该主成分的解释力度还不如一个原始变量的解释力度大,因此常将特征根大于1作为引入某个主成分的标准。 ⑵主成分Zi的方差贡献率。主成分的方差反映该主成分含原变量总信息量的百分。 ⑶累积贡献率。将k个主成分的方差贡献率按照从大到小的顺序排列,累计贡献率指前k个主成分的方差贡献率之和,反映前k个主成分可提取百分之多少的原始变量的信息。在确定主成分个数时,一般选择累积贡献率达到70%-85%的前k个主成分。

明年一月股票价格属于逻辑回归问题吗

是的,明年一月股票价格属于逻辑回归问题。逻辑回归这个模型很神奇,虽然它的本质也是回归,但是它是一个分类模型,并且它的名字当中又包含”回归“两个字,未免让人觉得莫名其妙。 如果是初学者,觉得头晕是正常的,没关系,让我们一点点捋清楚。 让我们先回到线性回归,我们都知道,线性回归当中 y = WX + b。我们通过W和b可以求出X对应的y,这里的y是一个连续值,是回归模型对吧。但如果我们希望这个模型来做分类呢,应该怎么办?很容易想到,我们可以人为地设置阈值对吧,比如我们规定y > 0最后的分类是1,y < 0最后的分类是0。从表面上来看,这当然是可以的,但实际上这样操作会有很多问题。 最大的问题在于
展开全文阅读