分类特征的目标编码是什么意思?

  统计/机器学习 数据预处理    浏览次数:594        分享
1

分类特征的目标编码是什么意思?

谢谢

 

塔吉塔   2022-04-17 12:44



   1个回答 
2

目标编码(target encoding)是一个处理高维分类变量的方法,非常简单,但是又很强大。

简单来说就是用分类变量里每个分类对应的目标均值来代替原来的分类。

假设特征$X_i$是分类变量,取值是$c_1,c_2,\cdots,c_{t}$

那么我们就把$X_i$中的$c_t$换成:

对于二分类问题

$$Prob(y=1|X_i=c_t)$$

对于回归问题

$$E(y|X_i=c_t)$$

下面是一个例子,对Animal这个分类变量做了数值替换,cat被替换成了0.4,等等

     

对于高维的分类变量,我们可以直接用one-hot-encoding的方法。但是如果这个分类变量包含了上百个类别,那么就会有发生高维诅咒的风险。

用target encoding,可以降低高维的风险,直接把一列分类变量转成了数值变量,类似的方法其实还有用一个分类出现的次数来代替这个分类。

target encoding的缺点也比较显然:

  • 会有数据泄露问题,因为特征中用到了目标值的信息
  • 如果每个类别对应的均值都一样或者很接近,这个特征转成数值特征后,信息量将大大降低
  • 如果有的类别出现数量很少,也要注意到平滑
  • 替换后的两个分类即使数值接近,不代表这两个分类本身具有相似性

这个方法是出现在2001年的论文当中:A preprocessing scheme for high-cardinality categorical attributes in classification and prediction problems

SofaSofa数据科学社区DS面试题库 DS面经

wxw_pku   2022-05-08 14:16



  相关讨论

机器学习中的维度灾难怎么防止和克服?

怎么对特征做标准化使得数值都是正数?

什么时候需要对y或者特征进行对数变换?

z-score标准化不适用于处理什么样的数据?

二值化和Onehot表示的特征哪一个较好?

dummy variable是n个还是n-1个

机器学习中的过采样和欠采样是什么意思?

数据白化是什么意思?

在数据预处理阶段,特征的标准化有哪些方法?

把分组频数统计的结果添加到原来dataframe中

  随便看看

两个独立的正态随机变量的乘积服从什么分布?

Python计算两个数组的相关系数

逻辑回归模型中变量的系数怎么理解?

二元分类为什么不能用MSE做为损失函数?

VGG16和VGG19的区别?