《百面机器学习》学习笔记:机器学习中对类别型特征的编码方法
类别型特征主要是指性别(男、女)、血型等只能在有限选项内取值的特征。除了决策树等可以直接处理字符输入的模型之外,对逻辑回归/支持向量机等模型来说,类别型特征必须经过处理转换成数值型特征才能工作。
序号编码方法
将类别行数据首先处理为高中低等顺序关系,然后使用数字按照顺序关系进行编码,例如高级别对应3,中级别对应2,低级别对应1。在进行上述转换之后需要保留其大小关系。
独立热编码(One-hot Encoding)
独立热编码通常用于处理类别简不具有大小关系的特征。例如血型等。血型有四个取值,但是有不同的组合形式,那么使用独立热编码可以将四种血型表示为4维的稀疏向量:
A型表示为(1,0,0,0)
B型表示为(0,1,0,0)
AB型表示为(0,0,1,0)
O型表示为(0,0,0,1)
独立热编码的好处:
- 使用稀疏向量表示来节省空间,很多算法现都支持数据的稀疏输入;
- 配合特征选择来降低维度,为什么要降低特征的维度?一是例如K近邻算法中,高维空间下两点之间的距离很难得到有效的衡量;二是例如在逻辑回归算法中,参数的数量会随着维度的增加而增加,容易引起过拟合问题;三是只有部分维度是对分类、预测有帮助,因此可以考虑使用独立热编码来配合特征选择降低维度。
二进制编码
二进制编码的过程:首先将类别型数据转换为数值型数据,然后每个数值使用二进制代替十进制进而来表示对应的类别型数据。二进制编码本质上是对每个类别型数据进行哈希映射,最终得到0/1特征向量。
使用二进制编码相对于独立热编码的好处为:维数少于独立热编码,节省了空间。
除了上述一些经典的编码方式之外,还有如下编码方式:
Helmert Contrast、Sum Contrast、Polynomial Contrast、Backward Difference Contrast等。