【FE】处理Categorical Features

之前的文章介绍了Numerical features,今天来介绍Categorical features。Categorical features 在我们的生活中也很常见,小到一年四季,一周七天,色彩颜色种类;大到用户id,CTR中的广告对象,这些都是属于Categorical features。

区别Numerical和Categorical的方法比较简单,那就是看数值的magnitude是否有意义,能否根据这个对数据进行排序。

我今天对categorical feature的介绍,也大致分为这么两类:普通的categorical features和大型的categorical features。

 

一. 普通的categorical features

(1) Label encode

对categorical feature编码最简单的想法就是,每一个类别分配一个整数。比如类别1分配1,类别2分配2,等等。

这种想法的问题在于,有些毫无关系的类别,在这种编码条件下,反而会得到一个本来不存在的大小关系。

以使用欧氏空间的模型为例,这种空间衡量相似度的一种方法就是通过距离。那显然3对于1的相似度就会小于2对于1的相似度。然而大部分情况下1,2,3这三种类别应该是相互独立的。所以这种编码方法在编码那些具有独立类别的特征时,会有一定问题

在一些特定的情况下,我们还是可以使用这种编码方法,比如对年龄的编码。0~10岁为类别1, 11~20岁为类别2, 21~30岁为类别3。这里给这三个年龄范围赋予了三个存在大小关系的数字,事实上,他们确实存在着1<2<3这种大小关系。

(2)One-hot encode

独热编码,这种编码解决了label encode的一个问题。那就是免去了不同类别之间的相关性。

还是以欧式空间为例,我们衡量向量之间的相似度的方法是通过余弦相似度,余弦相似度的计算就要通过dot product,显然不同类别之间的one-hot vector点乘的结果是0,换而言之,其余弦相似度也是0,他们相互独立。

但是这种编码方法有一个问题,那就是它存在一个线性约束:对所有样本而言,老特征被独热编码后,产生所有新特征的值,加起来必定为1。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值