机器学习——数据预处理(Preprocessing)
1、缺失值处理
-
删除包含缺失值的一整列
当该列种的大部分数据都缺失时可采用该方式,如果只有个别数据缺失,直接删除整列会导致大量信息丢失
-
填充缺失值
往缺失值中填入相关数据,例如:列均值、中位数等
填充值往往比直接删除整列数据有更好的效果
-
扩展填充
直接填充缺失值往往和实际的值之间有所差别,加入一列记录原始数据是否缺失可能会对预测结果有更好的效果
2、分类变量的预处理
在使用分类变量(特征)搭建机器学习模型之前,需要将分类变量变成数值变量才能将该特征加入模型中进行训练
对分类变量预处理有三种方式:
-
直接删除分类变量
最简单的处理方法是直接将是类别型的特征作删除处理,训练模型的时候只考虑数值型变量即可,该方法会导致损失有用信息 -
标签编码(Label Encoding)
对类别变量中每一个取值都赋予一个对应的数值,该方法假定各个取值之间存在某种顺序关系
例如: “Never” (0) < “Rarely” (1) < “Most days” (2) < “Every day” (3) -
独热编码(One-Hot Encoding)
当分类变量中各个取值之间不存在某种顺序关系的时候,独热编码将是一种更好的选择
独热编码可以理解为,对于每一个特征,如果它有m个可能值,那么经过独热编码后,就变成了m个二元特征,并且这些特征互斥,每次只有一个**
当分类中取值可能性很多(m>15)时,不适合使用独热编码,这会造成特征数量的急剧增长