3.3 数据缺失值填补

3.3.1 数据缺失值填补方法

制造数据包含的噪声亦表现为数据的不完整性,即很多记录的属性值空缺。如果数据集中第i个记录的第m个属性为缺失值,则记为xim=null。根据记录是否有缺失值,可以把数据集分为完整数据集和空缺数据集。根据变量是否有缺失值,可以把变量集分为完整变量集合和空缺变量集。具体定义如下:

Scomplete={XiS,xij≠null,1≤iM,1≤jN}(3⁃8)

Smiss=S-Scomplete(3⁃9)

Xcomplete={Xi∈X,xli≠null,1≤lM,1≤iN}(3⁃10)

Xmiss=X-Xcomplete(3⁃11)

虽然粗糙集和神经网络在处理不完备数据集方面有一定优越性,但线性回归、决策树和支持向量机等基于数据的建模方法,在完整数据集上能取得更稳定的结果。因此,需要设计一种适用于制造数据的几种缺失值填补方法。常用的缺失值填补技术可以分为以下三类。

(1)基于规则的填补法[25]

① 全局常量填补法:对于Xmiss中的变量Xi,计算其已知数据值的均值或中位数补全缺失值。这种方式在变量缺失值较多时会降低变量的方差。

② 随机数填补法:对于Xmiss中的变量Xi,通过其已知数据值推断出Xi的分布,并根据该分布用随机采样的方式填补变量缺失值。这种方式在变量缺失值较多时会增大变量的方差。

③ 删除变量填补法:删除SXmiss中变量对应的属性,保留Xcomplete所对应的属性。这种方式会导致一定的数据丢失。

④ 删除记录填补法:删除SSmiss的数据记录,保留Scomplete。这种方式会导致一定的数据丢失。

⑤ Hot deck填补法:对于一个包含空值的对象,在完整数据中找到一个与它最相似的对象,然后用这个相似对象的值进行填充。不同的问题可能会选用不同的标准来判定其是否相似。该方法概念上很简单,且利用了数据间的关系来进行空值估计。这个方法的缺点在于难以定义相似标准,主观因素较多。

(2)基于模型的填补法

在基于模型的填补法中,以Scomplete为训练集,Xcomplete为属性变量,Xmiss,i∈Xmiss为预测变量,通过训练和参数估计的方法,构造预测模型Xmiss,i=fimputate(Xcomplete)来预测SmissXmiss,i的值。根据fimputate的不同,基于模型的填补法有以下5种。

① 朴素贝叶斯填补法:朴素贝叶斯分类模型可填补离散型变量。通过最大似然法估计模型参数,模型构造速度快。要求Xcomplete中变量满足:变量之间互相独立且变量分布已知。

② 决策树填补法[26]:C4.5决策树可以填补离散型变量。首先将变量离散化,根据变量的信息增益选择根节点,以递归的方式构造决策树,模型构造速度较快。为了避免对Scomplete的过拟合,通常会采用剪枝技术对决策树进行剪枝。

③ 线性回归填补法[27]:线性回归可填补连续性变量。通过最小二乘法估计模型参数,模型构造速度快,但填补之后的Xmiss,i和Xcomplete中变量具有较高的线性相关性。

④ 神经网络填补法[28]:神经网络可填补离散型和连续型变量。通过反向传播法训练网络,模型训练速度慢。在优化模型结构和参数的前提下可以拟合出XcompleteXmiss,i之间的非线性关系,但也容易对Scomplete造成过拟合进而导致在Smiss上的填补不精确。

⑤ 支持向量回归填补法[29]:支持向量回归填补法可以用来填补连续型变量,使用完整数据集构造非线性支持向量回归模型来预测缺失值。支持向量回归模型通过序列最小优化方法训练模型,其训练速度和神经网络相比较快,支持向量回归是一个有效的填补方法。

(3)基于距离的填补法

KNN填补法[30]:KNN方法是一种常用的惰性学习方法。对于Smiss中的数据记录xi,通过距离公式从Scomplete中找到和xi最相似的K个完整数据记录;将这K个数据记录在xi空缺属性上取值的加权平均填补xi的空缺属性。在KNN填补法中,数据记录之间的相似度度量只考虑Xcomplete的变量。KNN具有简单、不需要训练且精度高等优点,但每填补一个缺失值都需要遍历整个Scomplete,填补速度较慢,因此,基于KNN的填补法常与聚类方法结合使用[31]