Datawhale
作者:小雨姑娘,Datawhale成员
离散型变量编码的Python库
首先我要介绍这个关于离散型编码的Python库,里面封装了十几种(包括文中的所有方法)对于离散型特征的编码方法,接口接近于Sklearn通用接口,非常实用。下面是这个库的链接:
http://contrib.scikit-learn.org/categorical-encoding/
1.Label Encoder / Ordered Encoder
这个编码方式非常容易理解,就是把所有的相同类别的特征编码成同一个值,例如女=0,男=1,狗狗=2,所以最后编码的特征值是在[0, n-1]之间的整数。
这个编码的缺点在于它随机的给特征排序了,会给这个特征增加不存在的顺序关系,也就是增加了噪声。假设预测的目标是购买力,那么真实Label的排序显然是 女 > 狗狗 > 男,与我们编码后特征的顺序不存在相关性。
2.OneHot Encoder / Dummy Encoder / OHE
大家熟知的OneHot方法就避免了对特征排序的缺点。对于一列有N种取值的特征,Onehot方法会创建出对应的N列特征,其中每列代表该样本是否为该特征的某一种取值。因为生成的每一列有值的都是1,所以这个方法起名为Onehot特征。Dummy特征也是一样,只是少了一列,因为第N列可以看做是前N-1列的线性组合。但是在离散特征的特征值过多的时候不宜使用,因为会导致生成特征的数量太多且过于稀疏。
3. Sum Encoder (Deviation Encoder, Effect Encoder)
离散型变量编码方法详解与效果对比

本文介绍了离散型变量的多种编码方法,如Label Encoder、OneHot Encoder、Sum Encoder等,并分析了它们的效果和适用场景。通过实验数据表明,CatBoost Encoder和Ordinal Encoder在交叉验证后表现出较好的效果,而LeaveOneOutEncoder在未使用交叉验证时表现不佳。对于无序离散特征,OneHot、Hashing和Target Encoding等方法效果良好,但OneHot要注意高基数特征。对于有序特征,Ordinal编码可能更合适。文章还提到了过拟合问题和防止过拟合的策略。
最低0.47元/天 解锁文章
962

被折叠的 条评论
为什么被折叠?



