在高度相关的变量中进行选择

数据挖掘 回归 相关性
2021-10-15 01:38:15

我正在研究一个 Kaggle 数据集,我正在尝试为学生进入他们感兴趣的大学的“录取机会”(因变量)建立一个预测模型。

您可以在下面找到所有(独立和因)变量之间的相关性。我们可以很快观察到,只有“GRE 成绩”、“托福成绩”和“CGPA”对“录取机会”变量有很大影响。因此,从预测模型中消除所有其他变量是有意义的。

现在在“GRE 成绩”、“托福成绩”和“CGPA”变量中,我们可以看到它们都是高度相关的(这在现实生活中也很有意义,因为你总是期望一个好学生在这些考试中取得好成绩) . 我无法决定为我的最终模型保留哪些变量。我可以保留所有这些吗?或者我如何决定排除哪一个?

任何帮助表示赞赏。

在此处输入图像描述

2个回答

我同意@peter 关于第 1 点到第 5 点的详细回答,并想补充一些更多细节:

  1. 对相关变量执行 PCA 或 MFA,并检查此步骤中有多少预测变量可以解释所有相关性。例如,高度相关的变量可能会导致 PCA 的第一个组件解释数据中 95% 的方差。然后,您可以简单地在模型中使用这第一个组件。

  2. 通过查看变量的特征重要性,随机森林也可以用于特征选择。然而,相关变量可能会导致误导性特征重要性。您可以使用排列特征重要性(https://scikit-learn.org/stable/modules/permutation_importance.html

  3. 使用所有功能时,您可能会过度拟合因此,必须使用验证集来检查过拟合。

  4. 您还可以通过添加具有随机值的特征并丢弃任何特征重要性低于该特征的特征来丢弃无用的特征。

对于这个主题,我强烈推荐这本书:特征工程和选择:预测模型的实用方法在这里开源:http : //www.feat.engineering/ 也可以在亚马逊上找到。

关于您的任务的一些提示/想法:

  1. 不会排除其他解释变量X太早了。当我查看您的相关图表时,我怀疑所有变量(但序列号)对是的. 如果你踢掉这些变量,你可能会丢掉重要的信息。
  2. 万一有些 X高度相关,你可能会面临多重共线性的问题。对于某些方法,例如线性回归和相关方法,这可能是一个真正的问题。其他方法,例如随机森林,不太容易过度拟合高度相关的特征,因为该算法只考虑了每个森林中的少数特征,因此高度影响或相关的特征在每棵树中都不会发挥很大的作用。
  3. 我建议您首先检查相关性,也可能检查线性回归的方差膨胀因子这应该让您很好地了解特征是否过于强烈相关而无法联合考虑,例如在线性回归中。线性回归在这里也可能是一个很好的基线模型。
  4. 为了执行特征选择,您可以使用Lasso/Ridge 回归,它的工作原理类似于根据预测重要性选择特征的“自动”方式。
  5. 为了提高模型拟合度,您还可以检查广义加法模型 (GAM),它是一个线性系列,但允许您添加高度非线性的表示X 无需太多调整,也无需长时间训练。

为了对 ML 有一个好的开始,我建议你看一看“统计学习简介”。这本书有 RPython实验室。这将为您提供一个很好的开端,并对有关 ML 的最重要问题有一个全面的了解。

供未来阅读(如果您有兴趣):如果您将研究因果模型(用于统计推断),您的模型将受到内生性的影响。在这种情况下,您需要采用不同的方法来解决问题(工具变量或 IV估计)。但是由于您使用的是预测模型,所以这里没有问题。Wooldridge(“介绍计量经济学”)对于任何对因果建模感兴趣的人来说都是一个很好的起点。