3.1.1 均值填补法

均值填补法是一种常用的基于样本间相似度的填补方法。此方法将不完整属性分为数值型和非数值型。对于数值型属性,以不完整属性列中现有值的平均值填补该属性列的缺失值;对于非数值型属性,利用不完整属性列中现有值出现频率最高的数值填补其中的缺失值。在实际应用中,根据计算均值时所采用现有值的来源不同,可将该方法分为单一均值填补法和分层均值填补法。

1.单一均值填补法

单一均值填补法是指利用不完整属性中全部现有值的均值对该属性中的全部缺失值进行填补。假设X={xi|xin,i=1,2,…,n}表示样本数量为n,属性数量为s的不完整数据集,其第i个样本为xi=[xi1,xi2,…,xis]T(i=1,2,…,n)。I=[Iij]∈n×s用于描述数据的缺失情况,定义如式(3-1)所示:

针对数据集X中的第j个属性,若其为数值型不完整属性,在计算均值前先为该属性中数据缺失的位置添加一个占位数值,使该位置的数值能够参与运算。式(3-2)所示为该属性中除占位数值外全部现有值的均值:

对于第j个属性中的缺失值,将该平均值作为其填补结果。该方法简单易行,是一种常用的缺失值处理方式,但由于所求解的填补值较为单一,降低了数据的离散程度并限制了属性取值的多样性与随机性,故在一定程度上损失了数据信息。

2.分层均值填补法

分层均值填补法是基于单一均值填补法的改进方法。该方法利用与不完整属性相关联的完整属性将数据集划分为不同的子集,根据子集内样本的现有值计算平均值并将其作为填补结果。例如,在人口调查数据中,要对年收入这一属性中的缺失值进行填补,可以根据年龄、受教育程度等属性对样本进行划分,然后基于划分结果依次对每个子集内的样本进行缺失值填补。

对于不完整数据集X,若其中的第j个属性为数值型不完整属性,采用分层均值填补法对其进行缺失值填补的过程如下。首先,选出与第j个属性相关联的一组属性,基于该组属性采用聚类算法将数据集X划分为不同的子集,子集的数量记为L。聚类算法详见3.1.4节。随后,对于第l个子集,计算其中样本在第j个属性的现有值均值,并使用此均值填补子集内该属性中的缺失值。

针对同一属性中的缺失值,分别采用单一均值填补法和分层均值填补法进行填补,所得结果的示意图如图3-1所示,其中,方形表示现有值,星形表示填补值。

图3-1a)图单一均值填补法通过计算属性中现有值的均值,从而为属性中全部缺失值赋予相同的填补值;图3-1b)图分层均值填补法分别计算各子集中现有值的平均值,从而为各子集中的缺失值分别提供填补结果。由此可见,与单一均值填补法相比,分层均值填补法能够在一定程度上缓解单一填补值对数据离散程度的影响。此外,由于在填补过程中对样本进行划分,该方法所得填补结果在后续的聚类和分类问题中表现较好。

图3-1 均值填补法结果示意图

目前,均值填补法已经在工业、农业、医疗等领域获得广泛应用。该方法的优势在于简单方便,没有复杂的运算过程,时间复杂度和空间复杂度比较低,并且填补结果通常能够保持在合理的取值范围内,出现异常值的概率较低。不过由于该方法设计简单,对现有值所含信息的挖掘不充分,往往会影响填补值对真实值的还原度。