特征编码示例
原始值
实数 (0.23432)
离散 (1 | 2 | 3 …)
多个值 (1,3,4)
channel: one-hot
tag: 电影、国内、动作
编码方式
所有编码方式都可转化为以下三类:
-
单值 ( 离散:0,1 ; 稠密:float(归一化) )
- 怎么归一化?
- one-hot,分桶方式?
-
向量 (embedding)
- 归一化?
-
hash 稀疏特征 ( tag,id… )
- 怎么hash?
- 怎么处理多值?
特征示例 | 数据示例 | 编码方式 | 编码类型 |
---|---|---|---|
频道IDMINST数字标签 | 1,3,5,6,91,3,8 | one-hot | 单值 |
一个tag | 电影 | ??? | hash |
多个tag | 电影、国内、动作 | ??? | hash |
年龄 | 3,18,45 | 分桶,one-hot | 单值 |
单词 | 电视、手机、手表 | float稠密向量(word2vec)float稀疏向量(LDA)one-hot | 向量 |
展示数,点击数 | 23523,64353223 | long离散值float(归一化后) | 单值 |
https://flashgene.com/archives/30247.html
注:输入数据是数值型。XGBoost 和 CatBoost 以及 LGBM 算法不同,XGBoost 本身无法处理分类变量,而是像随机森林一样,只接受数值数据。因此在将分类数据传入 XGBoost 之前,必须通过各种编码方式:例如标记编码、均值编码或独热编码对数据进行处理
one-hot [6]
one-hot 编码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oevlqoQ4-1602147346748)(md_images/特征相关/image-20200920231214758.png)]
目标编码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QnyUe7kJ-1602147346750)(md_images/特征相关/image-20200920233034667.png)]
留一法编码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5XzaCIz1-1602147346752)(md_images/特征相关/image-20200920233305795.png)]
模型允许的特征值
gbdt | float234 | 不适合高维稀疏特征不善于处理大量 id 类离散特征善于处理连续的特征 | 0.3 0.934 0.232 0 0.23 0.239 |
---|---|---|---|
FM | 0/1float | 适合高维稀疏特征适合离散特征 | 0:1 1:1 2:0 2342342:1 5453432:1 |
LR | 0/1 | 适合高维稀疏特征适合离散特征连续特征的处理需要先进行离散化需要进行人工特征组合 | 0:1 1:1 2:0 2342342:1 5453432:1 |
NN | float |
特征类型
分类
-
连续、离散
-
向量表达:稀疏特征(稀疏表示的特征即是稀疏特征)、稠密
-
交叉特征、组合特征
连续、离散
[3] 李沐曾经说过:模型是使用离散特征还是连续特征,其实是一个“海量离散特征+简单模型” 同 “少量连续特征+复杂模型”的权衡。既可以离散化用线性模型,也可以用连续特征加深度学习。就看是喜欢折腾特征还是折腾模型了。通常来说,前者容易,而且可以n个人一起并行做,有成功经验;后者目前看很赞,能走多远还须拭目以待。
稀疏、稠密
稀疏性****优点[1]
1)特征选择(Feature Selection): 大家对稀疏规则化趋之若鹜的一个关键原因在于它能实现特征的自动选择。一般来说,xi的大部分元素(也就是特征)都是和最终的输出yi没有关系或者不提供任何信息的,在最小化目标函数的时候考虑xi这些额外的特征,虽然可以获得更小的训练误差,但在预测新的样本时,这些没用的信息反而会被考虑,从而干扰了对正确yi的预测。稀疏规则化算子的引入就是为了完成特征自动选择的光荣使命,它会学习地去掉这些没有信息的特征,也就是把这些特征对应的权重置为0。
2)可解释性(Interpretability): 另一个青睐于稀疏的理由是,模型更容易解释。例如患某种病的概率是y,然后我们收集到的数据x是1000维的,也就是我们需要寻找这1000种因素到底是怎么影响患上这种病的概率的。假设我们这个是个回归模型:y=w1x1+w2x2+…+w1000x1000+b(当然了,为了让y限定在[0,1]的范围,一般还得加个Logistic函数)。通过学习,如果最后学习到的w就只有很少的非零元素,例如只有5个非零的wi,那么我们就有理由相信,这些对应的特征在患病分析上面提供的信息是巨大的,决策性的。也就是说,患不患这种病只和这5个因素有关,那医生就好分析多了。但如果1000个wi都非0,医生面对这1000种因素.
连续特征如何离散化,为什么要离散化,常用于逻辑回归模型
特征监控
特征覆盖度
单特征auc ??
Reference
[1] 稀疏性的优点 https://blog.csdn.net/a362682954/article/details/85226022
[2] 什么是稀疏特征(Sparse Features) https://www.zhihu.com/question/31951092
[3] 特征工程——连续特征与离散特征处理方法 https://blog.csdn.net/u014135752/article/details/80789251
[4] 使用gbdt时类别特征的处理方法 https://blog.csdn.net/weixin_38526306/article/details/88895994
[5] CTR 预估模型的进化之路 https://cloud.tencent.com/developer/article/1005416
[6] one-hot encoding不是万能的,这些分类变量编码方法你值得拥有 https://mp.weixin.qq.com/s/u3qtfv_jneWoQdcCUolbuA