5.2 对ordinal分类特征编码
问题描述
存在一个ordinal分类特征(例如,高、中等、低),现在要对其编码。
解决方案
使用pandas数据帧的replace方法将字符串标签转换成相应的数字:
讨论
有一些分类的特征总是有某种天然顺序的。李克特量表(Likert scale)就是一个典型的例子:
● 非常同意
● 同意
● 保持中立
● 反对
● 强烈反对
对那些用于机器学习的特征进行编码时,需要将ordinal分类转换成数值,同时保留其顺序。最常见的方法就是,创建一个字典,将分类的字符串标签映射为一个数字,然后将其映射在特征上。
有一点很关键,就是只有知道ordinal分类的顺序信息,才能决定每个分类对应的数值。在上述解决方案中,high就是比low大三倍。这在绝大多数场景下是没有问题的,但是如果分类之间的间隔不相等,就有问题了:
在这个例子中,Low(低)和Medium(中等)之间的距离与Medium和Baraly More Than Medium(比中等稍微多一点点)之间的一样,这就不太准确了。最好多留意分类所映射的数值:
本书评论