如何在回归模型中识别合适的预测变量

数据挖掘 r 预测建模
2022-02-13 19:54:00

我有一个大数据,想在 R 中对其执行一些预测模型(如回归、决策树、..),但我有一个问题。由于变量太多,有什么方法可以确定我应该在模型中使用哪些变量作为预测变量来预测特定变量?任何帮助将不胜感激。

2个回答

我假设变量太多是指变量数量大于观察数量()或接近的情况。您需要在输入变量之前减少变量的数量,使用@M.Mashayekhi 指出的某种自动特征选择方法,或者使用对高特征维度具有鲁棒性的学习模型。请记住,在我看来,特征选择/创建是模型构建中最重要的部分。如果您的所有输入变量都是无用的,那么使用复杂的机器学习算法是没有意义的。p>n

首先根据业务直觉或上下文减少输入变量的数量总是一个好主意。我的意思是回答以下问题:“我真的需要将所有这些变量都包含在模型中吗?”、“哪些变量作为预测变量包含在模型中是没有意义的?” “模型中是否有变量必须存在,即使它不是最强的预测变量,仅仅是出于商业原因?如果这些问题不容易回答,或者你已经减少了变量的数量,但仍然处于变量太多,那么你可以试试下面的。

主成分分析 (PCA)

一种建议是使用 PCA 来减少特征空间,然后在减少的特征空间上运行回归、决策树等学习算法。您可以在 R 中使用pca. 选择第一个但许多主成分,其中下一个 PC 解释的边际方差下降(因为每个附加主成分总是增加解释的方差)。

使用 Lasso 回归 ( ) 正则化L1

另一种方法是让模型为您进行特征选择。一个好的开始是带有套索()惩罚的回归,这会将估计的系数缩小到零。它通过将大效应系数比小效应系数更缓慢地缩小到零来实现这一点。这通过将它们设置为零来有效地从模型中移除小的影响系数,因此,自动特征选择。挑战在于选择一个好的收缩参数,它控制着你缩小系数的程度。您可以通过交叉验证来做到这一点。在 R 中,让我们运行套索回归,然后选择L1λglmnetglmnet.cvλ使用简历。另请注意,通过缩小系数,套索回归通过平衡方差减少和偏差增加来减少预测误差。您必须决定哪个更重要,推理还是做出好的预测,因为与 OLS 回归不同,套索回归的估计不再是无偏的。

随机森林

随机森林是一种集成树学习算法(randomForest在 R 中实现),它对许多无用变量具有鲁棒性。的情况下效果很好RF因其鲁棒性和简单的调谐而非常受欢迎。缺点是这就是所谓的黑盒算法。这意味着没有很好的方法来解释输入和因变量之间的关系。但是,您可以使用“变量重要性图”之类的东西来粗略了解平均拆分期间哪些变量最有用如果您只关心做出好的预测,这很好。p>n

其他技术

当然还有其他技术可以很好地处理高维数据,例如支持向量机增强回归树RF 和增强树之间的差异),但它们通常可能需要比上面提到的更多的调整。

检查变量或特征的相关性,相关性最小的可以丢弃,必须考虑相关性最高的进行预测。但是,最低和最高取决于您的要求