一键编码与伪编码的问题


11

我知道以下事实:具有k个级别的分类变量应使用虚拟编码中的k-1个变量进行编码(与多值分类变量类似)。我想知道针对不同的回归方法,主要是线性回归,惩罚线性回归(Lasso,Ridge,ElasticNet),基于树的(随机森林),单次热编码(即使用k个变量代替)比虚拟编码有多少问题? ,梯度增强机)。

我知道在线性回归中会出现多重共线性问题(即使实际上我使用OHE拟合线性回归也没有任何问题)。

但是,是否需要在所有编码中都使用伪编码?如果使用一热编码,结果将有多大错误?

我的重点是在具有多个(高基数)分类变量的回归模型中进行预测,因此我对置信区间不感兴趣。


10
我声称将两者区分开是不正确的。虚拟变量和一次性变量是完整的同义词。第一个术语年龄较大,来自统计数据,第二个术语年龄较小,来自机器学习。第三个也是更正式的同义词是指标类型对比变量。是否使用此类基本变量集中的所有k个或k-1个非冗余变量的问题与该术语无关,并且取决于分析的类型以及具体的算法或程序。
ttnphns

2
(续)例如,由于奇异性,回归软件通常不允许输入所有k,但是等效的通用线性建模软件可能会允许它输入,因为它使用了伪逆方法。
ttnphns

1
我和@ttnphns在一起,这两个名字都很糟糕。我更喜欢全编码留一编码
马修·德鲁里

2
对术语表示歉意,这是我从业人员(以及类似取向的书籍)使用的标准术语。共线性问题仅出现在线性(无罚模型)中?并非所有软件都停止输入所有k(例如,Python的scikit-learn,如果我输入错误,请纠正我)
user90772

@MatthewDrury我最讨厌的事情之一是重复出现在统计分析领域的术语/词组,例如“单次编码”和“ A / B测试”。每个人都应该坚持使用较旧的“虚拟编码”和“假设检验”,以免造成混淆。
罗伯特·F

Answers:


7

用回归表示具有水平的变量的分类变量的问题是,如果模型也具有常数项,则这些项将线性相关,因此模型将无法识别。例如,如果模型为且,则参数向量的任何选择与。因此,尽管软件可能愿意为您提供这些参数的估计值,但是它们并不是唯一确定的,因此可能不会很有用。ķkkμ=a0+a1X1+a2X2X2=1X1(β0,β1,β2)(β0+β2,β1β2,0)

惩罚将使模型可识别,但是鉴于上述情况,冗余编码仍将以怪异的方式影响参数值。

冗余编码对决策树(或树的集合)的影响可能会使相关特征相对于其他特征超重,因为它以额外的冗余变量表示,因此与其他情况相比,其选择频率更高分裂。


1
我认为没有理由在树木或树木群中加入拦截器。我认为这是线性类型模型特有的。因此,对于基于树的模型,我认为正确的想法不是完全编码的拦截。
马修·德鲁里

@MatthewDrury我认为您对截距是正确的,但是即使那样,对于一棵树,冗余编码似乎使用有限。例如,如果某个功能是二进制的,那么在第一类拆分和第二类拆分之间有什么区别?据我所知,没有。
Kodiologist

的确如此,但我认为保持完全对称是使所有事物明显公平和可解释的最简单方法。
马修·德鲁里

1

Kodiologist有一个很好的答案(+1)。就设计矩阵而言,单热编码与伪编码的编码方法是相同的,并且在不同的基础上。(尽管一键编码有更多列)

因此,如果您只关注准确性而不是可解释性。两种编码方法没有区别。


1
令人讨厌的是,单发版本不是基础(因为它是线性依赖的);它只是跨越相同的空间。但是您确定编码对准确性没有影响吗?特别是在惩罚回归的情况下,我认为最终选择的模型将做出不同的预测。
Kodiologist '17

@Kodiologist感谢您在基础问题上对我的纠正。
海涛杜

@Kodiologist为什么在正则化线性方法中精度会有所不同?
海涛杜

4
在正则回归中,您应该始终使用完整的编码(即不要遗漏,我不能使您使用的名称变得直截了当,更不想自己使用它们)。这是因为拦截不会受到惩罚,因此,如果您推断某个关卡的效果不是拦截的一部分,那么很难说您正在对所有级别进行同样的惩罚。相反,始终包含所有级别,因此每个级别关于惩罚都是对称的。
马修·德鲁里

1
@Matthew Drury,谢谢您的最后评论。您能否将其扩展为一个答案?因此,仅对于纯线性回归需要伪编码吗?
user90772

1

我觉得最好的回答了这个问题埋在由@MatthewDrury,其中指出,有意见一个区别,您应该在其他标准化方法使用看似冗余列。@MatthewDrury的推理是

[在正则回归中],截距不会受到惩罚,因此,如果您推断某个关卡的影响不是该截距的一部分,那么很难说您正在对所有关卡进行同样的惩罚。相反,始终包含所有级别,因此每个级别关于惩罚都是对称的。

我认为他有道理。


因此,您应该根据情况k使用一个或多个k-1级别的热编码变量。除了您的陈述(正规化/非正规化)之外,在所有情况下该怎么做?
Dan Chaltiel

我的规则是,如经典ANOVA中那样,如果没有正则化,则使用k-1级。如果存在正则化(如在贝叶斯方法中或使用L2正则化进行回归),请使用k级。
Ben Ogorek,
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.