我有两个关于 one-hot 特征编码的问题:
(1) 在 one-hot 编码时删除第一个(或至少一个)one-hot 编码特征是否被认为是“最佳实践”,就像在经典统计中为线性回归建模创建虚拟变量时一样?似乎 ML 从业者是双向的。是否存在任何明确的指导?
(2) 最好的方法是处理具有数千个特征(约 6000 个)的分类变量的 one-hot 编码?这个数字特别高,因为在 one-hot 编码之前数据集只有大约 10 个特征宽。请注意,类别在特征之间分布非常均匀。
我有两个关于 one-hot 特征编码的问题:
(1) 在 one-hot 编码时删除第一个(或至少一个)one-hot 编码特征是否被认为是“最佳实践”,就像在经典统计中为线性回归建模创建虚拟变量时一样?似乎 ML 从业者是双向的。是否存在任何明确的指导?
(2) 最好的方法是处理具有数千个特征(约 6000 个)的分类变量的 one-hot 编码?这个数字特别高,因为在 one-hot 编码之前数据集只有大约 10 个特征宽。请注意,类别在特征之间分布非常均匀。
如果使用所有特征,则一热(分别是一冷)编码会产生共线性。仅仅因为以下关系始终成立:。
因此,删除一个特征会破坏共线性并且它可以获得更好的结果,因为许多模型(尤其是线性模型)会与特征中的共线性混淆。
如果一个分类变量有很多值,那么 one-hot (resp. one-cold) 不是最好的选择,并且由于维度的诅咒,结果将遭受很大的损失。
相反,可以使用其他编码LabelEncoder
,尽管流行的智慧实际上可以提供最先进的结果。
参考: