为什么不首选具有高基数的分类变量而不是数值变量?

数据挖掘 特征选择 特征工程
2022-02-25 01:16:44

我在网上研究了一些关于高基数的分类变量。许多帖子和论文只是简短地得出结论,“它会影响模型的性能”,而没有详细说明为什么以及如何高基数会影响模型的性能?

特别是,它们如何分别倾斜基于树和基于距离的模型?关于为什么高基数不起作用,我有以下两个想法:

i) 在某些编码方法下,例如 one-hot,它会导致维度灾难。

ii) 在标签编码下,每个编码之间的间隔/距离绝对没有意义,例如类别1和2之间的距离在距离算法方面没有意义。

但除了这些答案之外,我还寻找更多(即为什么以及如何高基数扭曲模型)。此外,以下问题自然地从上述逻辑分支:

此外,如果高基数对分类变量不利,那么为什么没有人抱怨数值变量“基数太高”?特别是当数值和分类变量通常混合在一个表格数据集中时?

先感谢您!

1个回答

主要区别在于数值变量对于 ML 模型只有一维。此外,总是有一个关于数值变量分布的假设,例如它遵循正态分布。决策树可以使用像“x > 15”这样的简单条件来分割数据,如果 15 是例如中位数,那么数据将被分成两个相等的部分。

相比之下,具有高基数的分类变量具有大量的模型维度。这意味着该模型可以处理大量变量,它们之间几乎没有依赖关系,因此存在维度灾难。此外,不能假设分类分布,因此模型不可能仅用几个值“总结”数据。决策树只能使用“x == 'red'”或“x != 'red'”等条件;在这些条件下,几乎不可能将数据分成相等的部分,因为大多数值只代表少数实例。这意味着要找到涵盖具有此类分类变量的大部分数据的一般模式要困难得多。