是否值得用大量的类(如60 )对特性进行编码?还是我应该把它留在原处?
发布于 2022-01-09 02:04:40
大量的类被称为高基数(High Cardinality),指的是具有非常罕见或唯一值的列。
处理高基数取决于数据/用例/模型,
以下是我们可以用来处理高基数的方法:
请参阅下面的链接
发布于 2022-01-09 07:19:14
通常,当我们有范畴变量时,我们做一个热编码转换成数值数据并在模型中使用。如果我们有n个类,我们得到n个变量。
现在,高基数变量是指那些有大量类的范畴变量,进行一次热编码可能会导致高维数据的出现,这是我们试图避免的。
但是在很多情况下,这些高基数变量可能有很多信息,我们希望将它们作为训练数据的一部分。要做到这一点,我们可以应用以下技术:
1. Try to drop the category which in less frequent or has a frequency of less then 1% or you can encode it with some special category say("rare"). You can use some business hypothesis to do that
2. Replace the Categorical Variables by using Smoothed Weight of evidence encoding
3. Use algorithms like CatBoost which encodes using Target encoding.
与任何其他变量一样,如果基数变量似乎与目标变量有某种关系,则似乎有必要对其进行编码,否则就不会。
有关更详细的分析,请参阅此链接
https://datascience.stackexchange.com/questions/106866
复制相似问题