栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

自动特征工程——特征编码Categorical Encoding

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

自动特征工程——特征编码Categorical Encoding

参考:特征编码方法
官网

Backward Difference Coding反向差分编码

用于编码类别变量的向后差对比编码。

原理
  • 将分类变量的一个级别的因变量的平均值与前一个相邻级别的因变量的平均值进行比较。 第一次比较将级别 2 的因变量的平均值与级别 1的因变量的平均值 进行比较。第二个比较将级别 3 的因变量平均值与 级别2 的因变量平均值比较,第三个比较 将级别4的因变量平均值与 级别3的因变量平均值比较… …依此类推。
level of variablelevel 2 vs. level 1level 3 vs. level 2level 4 vs. level 3
1-(k-1)/k-(k-2)/k-(k-3)/k
21/k-(k-2)/k-(k-3)/k
31/k2/k-(k-3)/k
41/k2/k3/k
ce.BackwardDifferenceEncoder(verbose=0, cols=None, mapping=None, 
                             drop_invariant=False, 
                             return_df=True, handle_unknown='value', 
                             handle_missing='value')
参数
  • cols
    要编码的列的列表,如果为 None,则将对所有字符串列进行编码。
  • drop_invariant
    是否删除方差为0的列
  • return_df
    是否转换后返回 pandas DataFrame(否则它将是一个 numpy 数组)。
方法
  • fit(X, y=None)
  • fit_transform(X, y=None)
  • transform(X)
import category_encoders as ce
en = ce.BackwardDifferenceEncoder(cols=['lotid'], return_df=True)
res = en.fit_transform(en_data)

原数据:

转换后:

BaseN

Base-N 编码器将类别编码为其 Base-N 表示形式的数组。以 1 为基数等效于单热编码(不是真正的以 1 为基数,但很有用),以 2 为基数等效于二进制编码。N=实际类别的数量等效于普通序数编码。

Binary二值编码

分类变量的二进制编码,类似于 onehot,但将类别存储为二进制位字符串。

CatBoost Encoder

分类特征的CatBoost编码。
CatBoost Encoder是一个基于目标的分类编码器。它是一个监督编码器,根据目标值对分类列进行编码。它支持二项式和连续目标。

  • 训练数据必须随机排列。
  • 使用类似于时间序列数据验证的原理。目标统计值依赖于观察到的历史,即当前特征的目标概率仅从它之前的行(观察值)计算。
Leave One Out

与目标编码非常相似,但在计算水平的均值目标时会排除当前行的目标,以减少异常值的影响。

Target Encoder目标编码
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/884204.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号