- 基于机器学习的数据缺失值填补:理论与方法
- 赖晓晨 张立勇 刘辉 吴霞
- 2747字
- 2021-03-31 21:04:35
3.2.2 基于非线性回归的填补方法
若不完整数据属性间为线性关系,则线性回归模型具有良好的建模精度,并能够获得理想的填补效果。但在现实世界中,数据属性间可能存在复杂的非线性关系,若仍对此类型数据展开线性建模,会导致填补准确性降低。因此,更为有效的做法是建立非线性模型,通过设计合理的拟合函数构造与真实数据相匹配的模型结构,进而挖掘属性间的非线性关系,并以此进行填补。
基于非线性回归的填补方法是采用非线性回归手段建模不完整数据。令X表示样本数量为n,属性个数为s的不完整数据集,xi=[xi1,xi2,…,xis]T(i=1,2,…,n)表示第i个样本。假设数据集X仅在第k维属性存在缺失值,即完整属性集合Jco={1,…,k-1,k+1,…,s},不完整属性集合为Jin={k}。针对数据集X,构建以完整属性为自变量,不完整属性为因变量的非线性模型,如式(3-53)所示:
式(3-53)中,yi表示因变量,由于因变量是不完整属性,即数据集的第k个属性,此处yi=xik;f(·)表示非线性函数,xi*表示自变量,即样本中除第k个属性外的其他属性值构成的向量;β表示由模型参数组成的向量;εi表示误差;Xco表示完整样本集合。
与线性模型类似,可通过最小化式(3-54)所示的误差平方和,求解非线性模型的参数[14]。
根据拟合函数f(·)的形式不同,非线性模型的类型也有所不同,下面介绍几种用于非线性回归建模的常见函数。
多项式函数是一类典型的非线性函数,其将自变量的各种组合视为函数构建的基本元素,通过不同的模型参数衡量各组合对拟合结果的贡献度,由此利用自变量组合的线性加权和建立拟合函数。多项式函数的通用形式如式(3-55)所示:
其中,p表示自变量的数量,即|Jco|;kl(l=1,2,…,p)为常数值,表示对自变量进行幂运算时的指数,Jco(l)(l=1,2,…,p)表示集合Jco中第l个元素。βConcat(k1,k2,…,kp)表示模型参数,Concat(k1,k2,…,kp)的作用是将k1,k2,…,kp按由高位到低位的顺序拼接成十进制数值,其定义为式(3-56):
当p=1时,不完整数据集仅有一个完整属性,即|Jco|=1。在此条件下,多项式函数的形式可表示为式(3-57):
式(3-57)中,d表示函数的阶数,此函数通常称为一元d阶多项式。
当p=2时,一种典型的多项式函数如式(3-58)所示:
式(3-58)中,函数的阶数是2,常称为二元二阶多项式函数。
多项式函数可以借助函数阶数的设计对因变量展开不同精度的逼近,从而实现复杂非线性关系的有效建模,因此其在回归分析中具有重要的地位。此类函数连续光滑,并且内部结构对称,易于编程求解,然而随着自变量数量和函数阶数的增加,计算量将急剧增大,因此需根据实际问题选取对因变量拟合最重要的自变量,并合理控制函数阶数[15]。
除多项式函数外,也可在合理考虑自变量与因变量关系的基础上,针对部分自变量设计非线性函数,最后将其组合为全局的非线性函数[16]。以第Jco(l)个属性为例,令j=Jco(l),关于该自变量的非线性函数可设计为式(3-59)、式(3-60)和式(3-61)所示的形式。
(1)指数函数:
式(3-59)中,β1和β2表示函数参数。
(2)对数函数:
(3)幂函数:
拟合函数的形式多样,既可是上述多项式函数、指数函数、对数函数、幂函数等各类函数,也可以是由多种函数组成的复合型函数。在实际建模过程中,需针对具体问题展开分析,以确定与属性间关联相匹配的拟合函数,并构建相应的非线性模型。
由于单个回归模型仅能拟合一个因变量,当数据集包含多个不完整属性时,需针对每个不完整属性分别构建以该属性为因变量、以完整属性为自变量的回归模型,进而填补所有的缺失值。但是,正如3.2.1节所述,若不完整属性的数量远远大于完整属性的数量,上述建模方式易造成已知信息的极大浪费。为了合理利用数据集内的所有现有值,下面以图3-4a)中的不完整数据集为例,介绍一种基于回归模型集群的缺失值填补方法[17]。
图3-4 基于回归模型集群的缺失值填补方法
如图3-4a)所示,数据集中的不完整属性序号集合为Jin={1,2,4,s},完整属性序号集合为Jco={3,5,6,…,s-1}。针对该数据集,可建立如图3-4b)所示的回归模型集群。该方法的建模过程包括初始建模和后续建模两部分,以下为初始建模的流程。
步骤1:按照属性中缺失值个数由小到大的顺序,对不完整属性序号进行排列。针对图3-4a)所示数据集,排列后的不完整属性序号集为Jin={1,2,4,s}。
步骤2:令Jco*=Jco,X0=X,设置访问标记l=1。
步骤3:建立以第Jin(l)个属性为因变量,Jco*对应属性为自变量的回归模型;
步骤4:根据数据集X0求解步骤3中模型的参数,计算填补值并以此替换X0在第Jin(l)个属性中的缺失值。
步骤5:若所有的不完整属性访问完毕,即l=|Jin|,则进入步骤6;否则更新Jco*←Jco*∪{Jin(l)},l←l+1,返回步骤3。
步骤6:初始建模过程完毕,并得到填补后的数据集X0。
以上过程的主要思路是,根据每个回归模型计算相应不完整属性中的填补值,并利用这些填补值替换属性中的缺失值,随后将包含填补值的属性用于后续建模。填补值和现有值共同参与建模的方式使不完整数据集内的现有数据得以充分利用。
在得到填补数据集X0后,可基于X0展开后续建模过程,以下为具体步骤。
步骤1:设置访问标记l=1。
步骤2:建立以第Jin(l)个属性为因变量,其他属性为自变量的回归模型。
步骤3:根据X0求解步骤2中模型的参数,接着计算本轮的填补值,并以此更新X0在第Jin(l)个属性内的填补值。
步骤4:若不完整属性访问完毕,即l=|Jin|,则进入步骤5,否则更新l←l+1,返回步骤2。
步骤5:若本轮填补数据集与上轮填补数据集中的填补值差异低于指定阈值,则暂停迭代并进入步骤6;否则返回步骤1。
步骤6:建模过程完毕,得到最终的填补数据集。
在上述流程中,除不完整属性外的其他属性均作为自变量参与模型构建,填补值在建模期间反复更新直至最终稳定。该建模方式有效提高了数据集中已知信息的利用率,然而迭代式的模型构建和求解增加了时间复杂度,因此主要适用于一些模型构建简单、参数求解高效的场景。
结合3.2.1节和本节内容,可知线性回归模型的构建简单高效,相关的理论研究也趋于完善,而非线性回归模型的构建相对复杂。非线性回归建模期间,人为构造拟合函数具有较多主观因素的干扰,包括为设计与真实数据相匹配的函数结构,开发人员需要具备一定专业领域知识,同时需要针对具体问题进行细致充分的探讨,故建模期间的人力耗费较大,最终模型的拟合质量也因人而异。
为了使所建模型能够合理挖掘不完整数据属性间的非线性关系,可考虑在线性回归模型的基础上构造非线性模型。一种可行的处理思路是利用模糊聚类将具有相近回归关系的数据划分为一个子集,并用线性回归模型逼近每一个子集[18][19]。TS模型正是由该思路发展而来的非线性建模工具,该模型将整个输入空间分解为若干个模糊空间,并利用不同的线性函数对模糊空间内的属性间关系依次建模,最终根据一定规则将各个局部线性函数相连,从而得到一个光滑的非线性函数。TS模型能够以少量的模糊规则逼近任意光滑的非线性函数[20],这样既满足了非线性模型对拟合性能的要求,又保留了线性模型计算量小的优点。鉴于该模型所具备的诸多优点,第6章和第7章将深入介绍基于TS模型的填补方法。