首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >具有大量类的编码特性

具有大量类的编码特性
EN

Data Science用户
提问于 2022-01-09 09:33:58
回答 2查看 192关注 0票数 0

是否值得用大量的类(如60 )对特性进行编码?还是我应该把它留在原处?

EN

回答 2

Data Science用户

发布于 2022-01-09 10:04:40

大量的类被称为高基数(High Cardinality),指的是具有非常罕见或唯一值的列。

处理高基数取决于数据/用例/模型,

以下是我们可以用来处理高基数的方法:

  1. 下降(根据业务情况)
  2. 嵌入频率/计数
  3. 目标编码/ CatBoost编码。
  4. 用一个简单的聚合函数降低基数

请参阅下面的链接

票数 2
EN

Data Science用户

发布于 2022-01-09 15:19:14

通常,当我们有范畴变量时,我们做一个热编码转换成数值数据并在模型中使用。如果我们有n个类,我们得到n个变量。

现在,高基数变量是指那些有大量类的范畴变量,进行一次热编码可能会导致高维数据的出现,这是我们试图避免的。

但是在很多情况下,这些高基数变量可能有很多信息,我们希望将它们作为训练数据的一部分。要做到这一点,我们可以应用以下技术:

代码语言:javascript
代码运行次数:0
运行
复制
      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.

与任何其他变量一样,如果基数变量似乎与目标变量有某种关系,则似乎有必要对其进行编码,否则就不会。

有关更详细的分析,请参阅此链接

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/106866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档