4.2.1 缺失值处理

由于数据收集过程中存在缺陷或错误,可能造成数据集中部分字段缺失,这种情况会导致缺失值的存在。缺失值处理有以下两种方法:

(1)直接丢弃

这是最简单的处理方法,可以丢弃包含缺失值的记录,或者丢弃缺失值所在的字段。当包含缺失值的记录数量较少时,一般会使用第一种方法,这样对最终的分析结果的影响不大;而第二种方法适用于缺失值较为集中的情况。

(2)进行替换

如果缺失值较多,丢弃缺失值往往会造成数据集分布特点的改变,因此常使用一些方法,如统计学方法或者算法预测(孔钦等,2018),对缺失值进行预测插补。本书展示了一个电信行业客户信息的数据集案例,该案例来自SPSS Modeler自带案例集,可自行安装软件后进入Demos文件夹找到telco.sav文件打开。

telco数据集中共有41个字段、1000个记录,用来记录电信用户基本信息、电信服务信息,以此预测某客户是否会流失(属性“churn”)。其中部分字段为空。该数据集中的缺失值主要集中在字段“logtoll”“logequi”“logcard”“logwire”。由于缺失值较集中,如果这些字段在未来的数据分析中不重要,可以选择将这些字段直接丢弃;而如果字段较为重要,则需要根据现有数据对这些缺失字段进行插补。

缺失值插补的方式有两种:统计学方式和算法预测。

统计学方式指的是根据该字段的其他非缺失值预测,使用固定值、中位数、均值等方法进行插补。其中对于连续值,可以通过求该字段已有数据的中位数、均值、众数或使用固定值进行插补;但是对于非连续值,只能使用固定值或者已有数据的众数进行插补。

另一种缺失值的插补方式是使用算法根据聚类或分类的结果,对缺失位置进行预测。分类算法属于有监督的学习方式,首先使用算法建立模型,将包含缺失值的数据进行分类,然后根据同一类别其他数据该字段的值,对缺失记录进行预测,常用的算法有决策树、神经网络、贝叶斯网络、k最近邻算法等。