一种基于KNN的改进缺失数据填补算法的制作方法

文档序号:11134194阅读:1154来源:国知局
一种基于KNN的改进缺失数据填补算法的制造方法与工艺

本发明涉及缺失数据填补领域,尤其是一种基于KNN的改进缺失数据填补算法。



背景技术:

在实际应用中,由于获取数据的途径或对数据建模的不同,得到的数据因不完全符合之前定义好的格式而被标记为“未知”或直接空缺,这些数据即被称为不完整数据或缺失值。缺失值普遍存在于医学、调查研究、工业等相关领域,不准确的测量方法、收集条件的限制、人工录入的遗漏等都有可能导致数据缺失,大量的数据缺失对后期的数据统计分析和数据挖掘工作都会产生很不利的影响。例如缺失值可能会直接影响到新发现模式的准确性,导致错误的挖掘模型。在关联规则中,缺失值的未知性会对正常的数据分布形成干扰,影响支持度与置信度的计算结果,从而降低关联规则的挖掘能力。在聚类算法中,距离算法无法处理缺失值情况,从而影响最终的聚类结果。在决策树分类中,对属性值为空的记录很难确切进行划分,因此无法获得准确的统计分析结果,影响最终的决策。

对数据集中的含有的缺失数据进行及时准确的填补对用户获得有效信息以及提高用户满意度相当重要,也是数据处理领域一个值得研究和重视的问题。缺失值是影响数据完整性的主要因素,而在现实世界中由于数据录入时出现遗漏、不正确的度量方法、收集条件的限制或者因违反约束条件而被删除等多方面因素都有可能导致缺失值,使得缺失值问题获得广泛的关注和研究。

目前已有很多针对缺失值填补的研究工作,填补方法主要分为三类,删除含有缺失值的记录、忽略含有缺失值的记录和对缺失值进行填补。其中最热门的就是对缺失值填充法的研究,填充方法大致可分为两类:统计学方法和数据挖掘方法。前者主要针对属性值是连续型数据的情形,常用于对整个数据集进行分析统计后对缺失值进行填补,常用的参数方法有线性回归法,多重填充法和EM算法。统计学方法能取得很好的填补效果,但是其不足之处在于,若在数据统计分析的过程中数据没有完全被理解透彻,或者选取了错误的数据模型,都可能会导致数据出现偏差,进而对数据质量带来不利的影响。最简单也是最常见的统计学填补方法是均值填补,即利用样本中具有完整数值的记录,计算其平均值,用于填补缺失的记录。数据挖掘方法是基于聚类算法将整个样本集划分为多个子集,再对子集进行分析,其主要研究方法有决策树、贝叶斯网络、聚类、神经网络、粗糙集理论等方法。与统计学方法不同的是,数据挖掘方法主要针对属性值是离散型的情形。KNN算法是在传统近邻算法的基础上发展而来的,其宗旨在于将两个距离最接近的记录视为最相似,并且由于操作方法的简便和数值填补的高准确率而广受学者研究和应用,目前很多填充算法都是在KNN的基础上进一步发展得到的。Pedro等人通过应用熵权矩阵来选取与缺失值最近邻的K个完整数据,而最终估值的加权系数则通过互信息来确定。熵值在反映数据的相关性上有很大优势,因此所选取的K个近邻也较为准确合理。但是对于KNN在处理高维数据时的复杂计算量没有提出有效的解决方法。基于欧式距离对于量纲限制的缺陷,杨涛等提出用马氏距离代替欧式距离选取K个最近邻样本。马氏距离避免了属性量纲的限制,充分考虑到样本间变异与相关性问题,同时运用熵值概念确定缺失值的加权系数。实验证明该算法取得很好的填补效果,但在K值的选取上没有提出有效解决方法。



技术实现要素:

发明目的:为解决上述技术问题,降低缺失数据算法的计算复杂度、提高邻近样本取值精确度以及提高数据填补值的估算精度,本发明提供一种基于KNN的改进缺失数据填补算法。

技术方案:为实现上述技术效果,本发明提出的技术方案为:

一种基于KNN的改进缺失数据填补算法,该算法包括步骤:

(1)对数据属性进行精简预处理,包括步骤:

设数据集X={X1,X2,…,Xn},n为事例的个数;定义数据集中第i条事例Xi的属性j值为xij,将xij表示为:

xij=k1jxi1+k2jxi2+…ktjxit+…+kmjxim,t≠j

式(1)中,m为Xi的属性总数目,ktj表示属性t对于属性j的权重系数;

定义属性t和属性j之间的相关系数为Ptj,ptj的表达式为:

计算权重系数ktj为:

设置阈值A,当满足ktj<A时,删除属性t;

(2)选择缺失事例的邻近样本,包括步骤:

基于步骤(1)精简后的剩余属性数据,分别计算缺失事例各属性之间的马氏距离以及缺失事例与其他事例间的灰色相关系数;根据计算出的马氏距离和灰色相关系数计算邻近样本选择距离:

a∈[1,2,…,n]且a≠i

式中,CRG(xa,xi)表示事例Xa与Xi之间的灰色关联度,Mahal(xaj,xij)表示属性xaj与xij之间的马氏距离;

从数据集X中挑选出与缺失事例之间的距离dk满足dk≤Dist(xt,xi)的K个完整事例,k∈[1,2,…,K];

(3)计算缺失事例的填补估计值,包括步骤:

将步骤(2)中选出的K个完整事例形成的数据集记为Y=[y1,y2,…,yi,…,yK]

计算事例yk对应属性的熵权值Ek为:

Ek=-Mpk ln pk

根据熵权值Ek计算事例yk的属性权值:

其中,0≤wk≤1,

计算缺失事例的填补估计值为:

进一步的,所述步骤(2)中的马氏距离Mahal(xaj,xij)的计算方法为:

式中,T代表转置矩阵,Σ代表样本协方差。

进一步的,所述步骤(2)中的灰色相关系数的计算方法为:

将所有属性值均量化到区间[0,1],计算事例Xa与事例Xi在属性p上灰色相关系数为:

式中,ρ为调整参数,ρ∈(0,1);q∈[1,2,…,m];

根据GRC(xap,xip)计算事例Xa与事例Xi之间的灰色相关系数为:

有益效果:与现有KNN算法相比,本发明具有以下优势:

(1)计算复杂度大大降低:利用改进的复相关系数倒数赋权法对属性集进行精简化操作,减少参与计算的属性数目,这样在计算缺失样本的K个近邻时会大大减少计算量,提高算法效率。

(2)距离算法准确率高,应用更广:原算法中在计算K个近邻时采用的距离算法为欧式距离,虽然计算简单但是没有考虑到属性量纲问题,本算法结合马氏距离和灰色关联分析法,综合考虑了属性间的相关性、属性量纲、属性类型等问题,使计算出的结果更加准确、适用性更广。

(3)填补效果更精确:在计算最终的填补值时,原算法一般选取K个完整样本值取均值的方法。本算法通过引进熵权理论的知识,利用K个值的大小不同,对K个样本对应的属性赋权值,代表其对于缺失值的影响程度。在最终计算填补值时,加入熵权值的影响,使得到的计算结果更加的准确。

附图说明

图1为本发明实施例的流程图。

具体实施方式

下面结合附图及现有的KNN算法对本发明作更进一步的说明。

如图1所示为本发明实施例的流程图,包括步骤:

(1)对数据样本集进行属性集精简化操作,删除相关性不大的样本

首先对含缺失值的样本与其他完整样本进行分析比较,删除一些与缺失样本关联不大的样本;对数据集样本进行进一步属性精简操作。对传统的复相关系数倒数赋权法进行改进,并利用改进后的算法计算出每个属性对含缺失值属性的重要性,删除一些与关键属性关联较小的属性,对属性集进行精简操作,得到仅含精简属性集的数据样本集。

(2)对精简后的剩余属性值做归一化处理。

(3)结合马氏距离和灰色关联分析法,计算缺失样本的K个近邻样本

利用马氏距离综合考虑属性间的相关性和变异性的优点,结合灰色关联分析法对含不确定因素样本的有效预测,计算出缺失样本的K个近邻样本。

(4)根据熵权法对对应属性赋权。

(5)根据K个近邻样本的信息,计算出最终的填补值

根据计算得到的K个距离值,依据熵权法对K个样本对应的属性赋熵权值,再结合属性值,计算出最终的填补值。

(6)算法结束。

K最近邻(K-Nearest Neighbor,KNN)分类算法是最简单的机器学习算法之一,是目前发展比较成熟的方法。该方法的基本思路是:在同一个特征空间内,如果一个样本的k个最相似近邻样本中的大部分属于某个类别,那么这个样本也属于该类别。在缺失值填充技术中,利用KNN算法中目标样本与近邻样本的同类相似理论从完整数据集中选取K个缺失数据的近邻,两个样本的近邻程度则是根据它们之间的欧式距离决定。

KNN算法是一个易于实现且效果良好的填补算法。但其主要缺陷在于每次选取K个近邻样本都要遍历整个数据集,同时欧式距离对于测量近邻程度也有很大的局限性。因此本发明对KNN算法进行三个方面的改进:首先利用改进的复相关系数倒数赋权法对属性集进行精简化操作,其次选择马氏距离和灰色关联分析法作为距离算法计算缺失样本的K个近邻完整样本,最后应用熵权理论对K个完整样本熵赋权值,结合属性值本身计算出最终的填补值。下面对这三个方面的改进方法做具体说明。

(1)改进的复相关系数倒数赋权法

一般情况下,为了更加综合全面地反映样本集的总体特点和其内部数据的关联性,在分析问题时总是会将样本更多的属性考虑进来以免遗漏重要信息,然而属性数目的增加又会导致数据的冗余和计算的繁杂,复相关系数倒数赋权法正是解决这个问题很好的工具,它首先对数据集每个属性进行分析,得出对缺失值属性关联度最大的属性集,这样就可以在简化问题减少计算量的同时又保证了填补的精确度。在本章中我们对复相关系数倒数赋权法进行了优化,使优化算法无论在计算量上还是准确度上都比之前得到提高。

复相关系数倒数赋权法的计算过程为:假设将n维向量X={X1,X2,…,Xn}表示为数据集,其中第i条事例Xi在属性j上的值为xij,即对于一个给定的属性j,数据集中各个事例在属性j上的值表示为:

xij,x2j,…,xnj

对于每条记录的属性xij我们用其他属性进行如下表示:

xij=k1jxi1+k2jxi2+…ktjxit+…+kmjxim,t≠j (1.1)

其中,i∈[1,2,…,n],j∈[1,2,…,m],m为Xi的属性总数目,ktj用于评价事例Xi中属性t对于属性j的重要程度,记为属性t对于属性j的权重系数,ktj的值越大,代表属性t的变化对于属性j的影响越大。所以复相关系数倒数赋权法的目的就在于根据ktj的值的大小选取对属性j相对重要的属性,而忽略一些不太相关的属性,从而达到精简属性集的结果。我们将复相关系数记为pj,它代表属性j被其他属性替代的能力。当pj=1时,表示属性j可以用其他属性代替,否则属性j对缺损值来说就是一个不可替代的属性。可以根据以下公式来计算复相关系数pj的值:

在公式(1.3)中,xij表示事例i的属性j,表示属性j的平均值,表示的估计值。根据得到的复相关系数的值,我们可以利用下式计算权重系数的值:

通过以上计算可知,复相关系数倒数赋权法的计算过程较为繁琐,且的未知性可能会使结果出现一定的误差,为了解决上述问题,提高权值的计算精度,本发明提出改进的复相关系数倒数赋权法,步骤为:

将属性t和属性j间的相关系数记为ptj以便能更加准确地表示属性间的相关性,则ptj的值可以通过下式进行计算:

带入式(1.4)得到权重系数为:

与pj相比,ptj在表示属性间的相关性上更具有代表性和准确性,改进后的算法提高了复相关系数倒数赋权法的效率,同时使运算结果更加准确。每个属性对缺损属性的重要性与ktj的值直接相关,若计算得到的ktj值小于我们之前设定的阈值,则这个属性在计算K个近邻记录时可以忽略不计,通过以上计算我们就可以得到在原属性基础上精简后的数据集。

(2)马氏距离和灰色关联度计算

在欧式距离的基础上,马氏距离综合考虑了属性间的相关性和变异性,解决了不同属性量纲的限制性问题,这些优点使它在计算未知样本距离时比欧式距离更加准确,适用性更广。马氏距离计算的是属性值之间的协方差距离,例如属性xaj和xij之间的马氏距离为:

在式(1.7)中,T代表转置矩阵,Σ代表样本协方差,只有在协方差矩阵的逆矩阵存在时我们才可以计算马氏距离的值,否则只能以欧式距离替代。

灰色关联分析法是对含有不确定因素系统的一种有效的预测方法,作为灰色系统理论的一种常见的方法,灰色关联分析(GRA)常被用来计算被各种因素影响的两个事例间的相关程度。两个事例间的关联值越高,则两个事例近邻度越大,反之则越小。因此,灰色关联分析法在缺失值填补时对于K个近邻的选取上是相当适用的。

在灰色关联分析过程中,常用灰色相关系数(GRC)去度量含缺失值事例和完全事例间的关系。假设将数据集设为X={X1,X2,…,Xn},其中X1代表缺失事例。GRC(X1,Xi)代表事例X1和其他事例间的灰色关联度。首先为避免不同属性的测量量纲带来偏差我们将所有属性值进行量化操作,将属性的值统一量化到区间[0,1],然后可以根据下式计算灰色相关系数(GRC):

其中ρ∈(0,1)为调整参数,通常我们将其值设置为0.5。i∈[1,2,…,n],p,q∈[1,2,…,m],其中n代表事例的个数,m代表每个事例的属性数目。代表事例X1与事例Xi在属性q值上差的绝对值的最小值。GRC(x1p,xip)表示事例X1与事例Xi在属性p上的相似度。GRC(x1p,xip)的值越大,代表两个属性值越接近。GRC(x1p,xip)∈(0,1],当|x1p-xip|的值最小时,GRC(x1p,xip)的值为1,反之则GRC(x1p,xip)的值最小。在计算出事例X1与事例Xi在每个属性上的灰色相关系数值以后,GRC(X1,Xi)即可通过如下方式计算:

如果GRC(X1,X2)>GRC(X1,X3),则表示事例X2相对于事例X3与事例X1近邻程度更高。根据每个事例中q属性对该记录的贡献程度赋予每个属性权值wq,它代表该属性对该事例的重要程度。在马氏距离和灰色关联度的计算过程中加入属性权重的影响,能更加准确地计算事例间的近邻程度,选出更合适的K个近邻。在得出事例间的马氏距离和灰色关联度的值后,我们就可以结合二者来计算最终的距离:

a∈[1,2,…,n]且a≠i

(3)缺失值填充

根据距离公式计算得出缺失值的K个近邻后,我们需要利用K个近邻提供的数据信息,选择合适的填充方法,计算出估计值对缺失值进行填充。为了使估计值更加接近真实值,提出根据K个完整事例与缺失事例的距离大小赋予对应属性不同的权值。将计算得到的K个近邻的距离大小记为dk,k∈[1,2,…,K],dk的值越小表示该事例与缺失事例越接近。根据各事例对缺失事例所产生的影响程度,对影响能力越大的事例对应属性赋予更高的权值。本发明使用信息理论中熵权知识对权值进行计算。

“熵权”理论是利用信息论中熵的概念对各指标的一种客观赋权方法。在一个给定的对象集中,同时在各种评价指标值确定的情况下,熵权代表每个指标竞争意义上的相对激烈程度,在信息理论中,它代表该评价指标在该问题中所能提供有效信息量的多寡程度,作为一种客观综合评价方法,它主要是根据各指标传递给决策者的信息量大小来确定其权数。在这里我们将K个距离值作为熵权理论中的K个指标,根据每个属性与缺失值的远近程度对其赋值,具体步骤如下所示:

假设D=(d1,d2,…di,…,dK)代表K个距离值,首先我们将各指标进行标准化操

作,将标准化后的数据集记为Y=[y1,y2,…,yi,…,yK],Y表示选出的K个完整事例形成的数据集,yk可以通过以下标准化过程得到:

在标准化操作后,根据熵权的定义,计算各事例对应属性的熵权值:

Ek=-Mpk ln pk,k∈[1,2,…,K] (1.12)

其中Ek代表根据缺失事例与完整事例yk在对应确实属性上的距离值所确定的熵权值,如果pk=0,则根据以上所得的结果我们计算出最终的属性权值:

其中0≤wk≤1,

综上所述,根据K个近邻对应属性的权值,结合属性值自身得到最终的填补估计值如下:

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1