使用单热编码时删除列之一


22

我的理解是,如果您的数据集具有高度相关的特征,则在机器学习中可能会出现问题,因为它们有效地编码了相同的信息。

最近有人指出,当对分类变量进行单次编码时,最终会具有相关功能,因此应删除其中一个作为“参考”。

例如,将性别编码为两个变量is_maleis_female会产生两个完全负相关的特征,因此他们建议仅使用其中一个,有效地将基线设置为男性,然后查看is_female列在预测算法中是否重要。

这对我来说很有意义,但是我没有在网上找到任何东西来暗示可能是这种情况,所以这是错误的还是我遗漏了一些东西?

可能的(未回答的)重复项:一键编码特征的共线性对SVM和LogReg是否重要?


8
you end up with correlated features, so you should drop one of them as a "reference"虚拟变量或指示变量(这是统计中使用的两个名称,在机器学习中是“单次编码”的同义词)无论如何都是k或k-1变量成对相关。因此,更好的词是“统计/信息冗余”而不是“相关”。
ttnphns

所有k个虚拟变量的集合是多共线性集合,因为如果您知道数据中的k-1个虚拟变量的值,您会自动知道最后一个虚拟变量的值。某些数据分析方法或算法要求您删除k之一。其他人能够应付所有k。
ttnphns

@ttnphns:谢谢,这很有意义。理论上保持所有k值是否会使它们较弱的特征可以/应该通过降维消除?使用PCA之类的争论之一通常是删除相关/冗余特征,我想知道是否让所有k个变量都属于该类别。
dasboth

Does keeping all k values theoretically make them weaker features。不(尽管我不是100%知道“减弱”的意思)。using something like PCA请注意,以防万一,代表一组相同类别变量的一组虚拟变量上的PCA 几乎没有实际意义,因为该一组虚拟变量内的相关仅反映类别频率之间的关系(因此,如果所有频率相等,则所有相关性都相等。到1 /(k-1))。
ttnphns

我的意思是,当您使用模型评估特征重要性时(例如使用随机森林),如果包括所有k个值,它会低估该变量的重要性吗?如上所示,如果您仅使用is_male变量而不是两个选项,您是否都能获得对性别重要性的“真实”估计?在这种情况下,这可能没有意义,只有当您有两个不同的变量实际编码相同的信息(例如,以英寸为单位的高度和以厘米为单位的高度)时,这才可能是一个问题。
dasboth

Answers:


23

lmglm

对于其他模型,请使用相同的原理。如果获得的预测取决于您遗漏了哪些列,请不要这样做。否则就可以了。

到目前为止,该答案仅提及线性(和一些轻度非线性)模型。但是,诸如树木和随机森林之类的非常非线性的模型呢?关于分类编码的想法,例如一口气,主要源于线性模型和扩展。几乎没有理由认为,从该上下文中衍生出的思想应该不加修饰地应用于树木和森林!有关某些想法的信息,请参见Python中具有稀疏数据的随机森林回归

β,β2,β3β1=0β2β1,β3β1


我可以同意选择参考变量会影响正则回归的结果,但是我不确定是否将所有变量都保持原样比删除一个更好。你有什么理由吗?
哥打森

好吧,只有两个选择...保持所有级别都会保持不变性,并且没有任意性。如果您有其他原因要减少等级,例如数量太多,则应该告诉我们
kjetil b halvorsen
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.