one-hot 编码的多重共线性

Posted

技术标签:

【中文标题】one-hot 编码的多重共线性【英文标题】:multicollinearity for one-hot encoding 【发布时间】:2017-07-02 15:23:21 【问题描述】:

我们是否总是需要为 one-hot 编码删除一列以防止多重共线性? 在这里的解决方案 (https://www.kaggle.com/omarelgabry/titanic/a-journey-through-titanic/comments#138896) 中提到了

@Kevin Chang 您需要删除一列虚拟变量以 避免多重共线性状态。这是一个非常高的状态 列之间的相关性(自变量);意思是 一个可以从其他预测。因此,它是一种 数据中的干扰,如果数据中存在统计 关于数据得出的结论可能不可靠。

在这里的解决方案中,没有考虑多重共线性 https://www.kaggle.com/sharmasanthosh/allstate-claims-severity/exploratory-study-on-ml-algorithms

我可以知道这是必须的吗,或者在什么情况下我们需要满足它?

【问题讨论】:

【参考方案1】:

如果我必须回答你的问题"Do we always need to remove a column for one-hot encoding to prevent multicollinearity?",答案是肯定的。

防止多重共线性的常用方法是从模型中删除高度相关的预测变量。如果您有两个或多个具有高 VIF 的因子,请从模型中删除一个。因为它们提供了冗余信息,所以去除其中一个相关因素通常不会降低 R 平方。

或者您可以使用偏最小二乘回归 (PLS) 或主成分分析,这些回归方法可以将预测变量的数量减少为一组较小的不相关成分。

【讨论】:

这通常不是真的。决策树模型受益于多重共线变量。然而,使用 Ridge、Lasso 或 ElasticNet 等正则化因子的参数和半参数模型避免了多重共线性。

以上是关于one-hot 编码的多重共线性的主要内容,如果未能解决你的问题,请参考以下文章

机器学习中为什么使用one-hot编码

类别的one-hot编码

为啥要用one-hot编码

机器学习入门-数据预处理-数字映射和one-hot编码 1.LabelEncoder(进行数据自编码) 2.map(进行字典的数字编码映射) 3.OnehotEncoder(进行one-hot编码)

one-hot 编码的生成与撤销

机器学习One-Hot编码