1. 特征编码的必要性
当拿到的数据比较脏乱,带有各种非数字特殊符号,如中文。而实际上机器学习模型需要的数据是数字型的,因为只有数字类型才能进行计算。因此,对于各种特殊的特征值,都需要对其进行相应的编码,也是量化的过程。
2. 特征编码的类型
2.1 分类型特征的编码方式
对于分类型数据的编码,通常会使用两种方式来实现,分别是:one-hot encoding 和 label-encoding。下面我们先介绍一下这两种编码
2.1.1 one-hot encoding独热编码
one-hot encoding也就是我们常常听到的独热编码(哑变量),独热编码就是将原始特征变量转换成以原始特征值分类的多维度的变量,并用是否(0,1)这种方式的新特征值替代和量化。
优点:解决了分类器不好处理分类数据的问题,在一定程度上也起到了扩充特征的作用。它的值只有0和1,不同的类型存储在垂直的空间。
缺点:当类别的数量很多时,特征空间会变得非常大,容易造成维度灾难。
2.1.2 label-encoding 标签编码
Label encoding就是将原始特征值编码为自定义的数字标签完成量化编码过程。
优点:解决了分类编码的问题,可以自由定义量化数字。但其实也是缺点,因为数值本身没有任何含义,只是排序。如大中小编码为123,也可以编码为321,即数值没有意义。
缺点:可解释性比较差。比如有[dog,cat,dog,mouse,cat],我们把其转换为[1,2,1,3,2],这里就产生了一个奇怪的现象:dog和mouse的平均值是cat。因此,Label encoding编码其实并没有很宽的应用场景。
2.2 离散型特征的编码
而对于连续型的变量,如果需要编码首先需要进行离散化(