2.3.1 基本概念
在现实世界中,由于人为或者机器原因的干扰,数据集经常面临缺失值问题。缺失值可能分散在数据集中的各个位置,在实际存储时,这些缺失值一般由“空格”“NaN”“NA”“?”等特殊符号,或者“-1”等数值进行标记。
含有缺失值的数据集被称为不完整数据集,假设X={xi|xi∈s,i=1,2,…,n}表示样本数量为n,属性数量为s的不完整数据集,其中第i个样本为xi=[xi1,xi2,…,xis]T(i=1,2,…,n)。式(2-1)所示的矩阵I=[Iij]∈n×s可用于描述数据集中的缺失情况,Iij=1表示属性值xij是现有值,Iij=0表示xij为缺失值。图2-2是数据集X的简单示意图,其中,第一行的元素Aj(j=1,2,…,s)表示第j个属性的名称。除这些元素外,图2-2中每一行代表1个样本,每一列代表一维属性,黑色方框表示缺失值,白色方框表示现有值。
图2-2 不完整数据集描述
从横向视角观察图2-2中的数据集,若样本在至少一个属性上存在缺失值,则该样本称为不完整样本,若样本在所有属性上均不存在缺失,则称其为完整样本。根据样本内是否存在缺失值,不完整数据集X可划分为完整样本集合Xco和不完整样本集合xin。其定义分别如式(2-5)、式(2-6)所示:
从纵向视角观察图2-2中的数据集,若某属性上存在至少一个缺失值,则该属性称为不完整属性,否则称为完整属性。例如,属性A1内存在多个缺失值,故A1是不完整属性,而属性A3内全部为现有值,故A3是完整属性。
从单个元素的视角观察上述数据集,所有现有值构成了数据集的现有值集合Xp,而所有缺失值构成了缺失值集合Xm,定义如式(2-7)、式(2-8)所示:
缺失率是缺失值数量和属性值总数的比值,若X中存在nmiss个缺失值,则缺失率可表示为。缺失率可用于衡量数据集的不完整程度。缺失率越大,往往意味着数据集的缺失情况越严重。
不完整数据集中缺失值的存在增大了数据分析的难度,并且易导致分析结果偏差。缺失值填补方法旨在为每个缺失值计算合理的填补值,并利用这些填补值替换数据集内的缺失值,由此生成与原始数据集规模一致的完整数据集。当所有缺失值被估算和替换后,可根据面向完整数据的分析方法对数据集展开后续研究。
假设样本xi的第j维属性值xij为缺失值,则xij对应的填补值可表示为ij,填补后的样本可表示为i=[xi1,…,ij,…,xis]T。所有不完整样本经填补后得到的样本构成集合in,定义如式(2-9)所示:
原始完整样本集合Xco和填补后的样本集合in共同组成了填补数据集。在数据集中,所有填补值构成了如式(2-10)所示的填补值集合m:
缺失值填补方法最终得到填补值集合m,用于替换数据集中的缺失值。不同的缺失值填补方法所得的填补值集合m有所不同。理论上讲,填补值与缺失值的真实值应尽可能接近,然而,缺失值的真实取值无法获取,因此,实际应用时填补值的合理性往往体现在其能够使后续分析更加准确高效,并且使所得结果更加可靠。