分类特征的目标编码是什么意思?
谢谢
1个回答
目标编码(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面经