特征工程之 模型 对 离散和连续的处理

无论模型是传统的ML,还是DL模型,处理的都是连续性变量(特征),在现实开发中,特征往往存在着两种状态–离散和连续。
机器学习模型处理的都是连续型数据(loss,梯度更新权重,不连续则没有办法去更新权重),对于离散型遍历有以下几种处理方式:

  1. 将类别无序 ——> 连续 (one-hot)
  2. 将类别有序 ——> 连续 (Label Encoder),一般将类别数值型 利用 Label Encoder 进行编码,转化成连续型特征。 即是对不连续的数字或者文本进行编号

类别型变量范围在范围较小时 推荐使用one-hot,【10,100范围内】

类别无序:如城市,性别
类别有序:比如age,

one-hot 为什么能将 离散特征 转化成 连续特征?
one-hot ,直观理解,有多少个状态就有多少比特,而且只有一个比特为1,其他全为0 的编码方式。
假如 color_feature = [红,黄,蓝]是三个特征值,利用机器学习的算法时,需要进行向量化或者数字化,如果,令红=1,黄=2,蓝=3,实现了标签化,然而这意味着机器学习可能会学习到“红<黄<蓝”的关系,但这并不是我们让机器学习的本意,只是区分他们,并无大小比较意思,所以标签化编码是不够的,3种状态,所以就有3个比特,红,100,黄,010,蓝,001,每个向量之间的距离都是根号2,向量空间距离都相等,所以不会出现偏序性。基本上不会影响基于向量空间度量算法的效果。
大部分算法是基于向量空间中的度量来计算的,为了使非偏序关系的变量取值不具有偏序性,就使用one-hot将离散特征的取值扩展到了欧式空间,,编码后的特征都可以看做是连续的特征

连续值:
可以做归一化,加快模型学习,加快收敛速度,模型更加稳定

Embedding
特征维度比较大,超过1000维,建议使用Embedding,Embedding的作用,就是将离散特征转化到一个可以在向量空间中度量的一种形式。解决的是 稀疏输入数据,将高维度数据映射到低维空间。

例子 参考 链接3 和 4

  1. 无序离散特征:ont-hot encoding ,如 国家、城市
    (1) 无序离散特征,如果 one-hot 之后 unique 值不多,可以不用做Embedding,但如果该特征 one-hot 之后 unique 值过多,embedding
    (2) 也可以做LabelEncoding,将特征不同取值分开,然后再embedding

  2. 有序离散特征:label encoding,比如年龄(类似分桶)

  3. 单值离散特征:做embedding 映射成1K维向量,然后与其他特征拼接
    in_age = Input(shape=[1], name=“age”) # None
    1
    emb_age_1d = Reshape([1])(Embedding(10, 1)(in_age)) # None*1, 年龄取值10种

  4. 多值离散特征:做embedding 映射成NK维,如某人的爱好有N个这种特征
    先做padding补成相同长度的,就得到了[0,1,0,1,1,0…0] 然后做Embedding(10,1)
    in_topic = Input(shape=[4], name=“topic”) # None
    4, 最长长度4
    emb_topic_1d = Embedding(22, 1, mask_zero=True)(in_topic) # None41

  5. 连续特征:归一化,分桶之后的离散值

参考链接:

  1. https://www.cnblogs.com/king-lps/p/7846414.html
  2. https://blog.csdn.net/m0_37870649/article/details/104550054
  3. https://blog.csdn.net/songbinxu/article/details/80151814
  4. https://blog.csdn.net/qfikh/article/details/104836456
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tiki_taka_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值