为什么计数编码能有效提高准确性?

数据挖掘 机器学习 特征工程 分类数据 分类编码
2022-03-01 16:12:53

与简单的标签编码相比,有人可以解释为什么分类特征的计数编码/如何提高分类的准确性吗?

我在 kaggle 中找到了一种解释“稀有值往往具有相似的计数(值如 1 或 2),因此您可以在预测时将稀有值分类在一起。具有大计数的常见值不太可能与其他值具有相同的精确计数。所以,共同/重要的价值观有自己的分组。“这似乎没有说服力,或者我不明白其中的道理。

有人可以解释为什么它比标签编码表现更好吗?标签编码还可以找到与目标变量相关的频繁模式,对吗?

2个回答

这是一个很好的问题,

我只想补充我的观点

假设您有具有特征的数据集(患者:id,execercise_duration:int,fav_products:类别)目标(糖尿病:二进制)
标签编码只会为每个唯一类别提供数字。假设 A 类是冰淇淋,B 类是果汁,C 类是巧克力。现在,如果类别 A 编码为 1,类别 B 编码为 2,类别 C 为 3,但您将编码特征保留为数字系列,那么它仅表示类别 C > 类别 B > 类别 A(因为 3> 2 > 1)。但是发送给模型的信息是否正确?

我猜不会。Intution 说,喜欢冰淇淋和巧克力等产品的人会患糖尿病。类别 A 和 B 和 C 仅代表三种不同的事物,其中没有大或小。

但是,如果您发送频率或计数,那么可以说数据中更多的观察是冰淇淋、巧克力和更少的是果汁。因为通常冰淇淋和巧克力比果汁更受欢迎。冰淇淋和巧克力的频率或数量将超过果汁。因此,将编码特征的频率或计数保持为数字可以为模型提供信息,即当该编码特征值高时结果为糖尿病,而当其低时结果为非糖尿病。

注意:对于这个简单的示例,即使使用标签编码,更复杂的模型(如决策树)也可能提供良好的准确性。

我的 2 美分。

  1. 计数编码包括额外的信息,如出现频率(同时忽略非实质性差异),一般来说,这些信息比标签编码中的标签索引更有用。

  2. 与标签编码不同,计数编码可以减少已知会降低性能的维数灾难(即在高维流形中学习) 。

数学中的一个类比是模算术。众所周知(实际上是一个定理),如果某些(复杂的)方程没有以某些数为模的解,则它们没有解。由于模算术更快更容易,实际上它通过将数字组合成等价类(模运算)的唯一效果将几个复杂的问题简化为更简单的问题。

灵丹妙药吗?当然不是,但在它成立的情况下,它肯定会为复杂问题提供更简单的解决方案。