特征工程之连续/离散特征的处理

离散特征:

  • 1.无序离散特征:one-hot encoding,比如所属国家、城市

    • (1)无序离散特征:one-hot encoding,比如所属国家,城市。(1)如果one-hot之后unique值不多可以不用做Embedding, (2)但是如果该特征unique值过多,比如所属国家、城市,onehot产生的矩阵过宽,这种情况下,我们的通常做法就是将其转换为embedding。
    • (2)也可以先做LabelEncoder将特征的不同取值区分开,然后再embedding
  • 2.有序离散特征:label encoding,比如年龄 (类似分桶)

  • 3.单值离散特征:做Embedding映射成1*K维向量,然后与其他特征拼接

  • 4.多值离散特征:做Embedding映射成3K维,然后MeanPooling 成1K维,比如某人的爱好有3个这种特征。

总结:

  • 特征用于FM一次项wi*xi:
    • 原值:比如1、2、3等级
    • Onehot:比如性别,省份,城市
    • LabelEncoder:有序离散特征 年龄
  • 特征用于FM二次项的隐向量
    • OneHot --> Embedding
    • LabelEncoder --> Embedding

连续特征:

  • 1.归一化:去除不同维度数据的量纲以及量纲单位 服从均匀分布
  • 2.标准化: 标准化成正态分布之后,可以更加容易地得出最优参数目标函数的最小值,从而达到加速收敛的效果。服从高斯分布,一般数据服从高斯分布,所以标准化用的比较多。

区别:两者都可以对特征做幅度缩放,两者的效果差不多,选择其中一个即可。

  • 分桶:
    • (1)连续特征可以通过分桶实现离散化成[0,1,2,3,…9]
    • (2)大量离散特征比如 每个用户观看的视频数,也可以分桶

应用于FM一次项时:先通过标准化/分桶 --> 乘以权重系数wixi 再与其他特征拼接。 例如1个连续特征先通过Dense(1) (wixi)得到1个数,再与其他特征拼接。
应用于FM二次项时:先通过标准化/分桶 -->Embedding得到K个数,在通过RepeatVector 得到1K维向量,再与其他特征相乘。例如1个连续特征先通过Dense(1)(类似一个Embedding) 得到K个数,在通过RepeatVector 得到1K维向量,再与其他特征相乘。(Ref: DeepFM-keras 实现中FM二次项)

离散/连续特征 总结:

  • 第一步:原值,标准化,OneHot,LabelEncoder,分桶
  • 第二步:如果需要得到隐向量的话 就再做Embedding

正则化:

  • 常见的有正则项有 L1 正则 和 L2 正则 以及 Dropout

更详细内容请参考:ML 入门:归一化、标准化和正则化

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值