一种面向多维特性数据的缺失值检测及填补方法

文档序号:31999331发布日期:2022-11-02 10:26阅读:169来源:国知局
一种面向多维特性数据的缺失值检测及填补方法

1.本发明涉及多维特性数据预处理领域,尤其是涉及一种面向多维特性数据的缺失值检测及填补方法。


背景技术:

2.随着互联网、云计算等信息技术的发展,大数据日益渗透于金融、医疗、工业等各个行业领域之中,成为重要的生产因素。因此,对数据的挖掘和应用具有十分重要的现实意义。然而在实际的采集、传输、存储过程中,会因为多种原因导致数据的质量参差不齐,后续的数据分析挖掘效果也会不佳。现有大多数学者针对数据质量相关的研究主要为数据质量特性评估,侧重于评估数据集的准确性,相似性或完整性,而这些特性分别取决于数据集中异常值,相似值及缺失值。由于数据内在或外界因素而造成在某个属性上发生信息丢失的数据点,被称为缺失值。缺失值作为数据质量评估的重要方面,能够判断数据集中各数据的完整程度,为后续的数据分析提供依据。在许多实际研究问题中,数据的缺失或不完整是必然存在的,当缺失数据占研究数据比重过大时,会造成大量数据信息的丢失,导致基于数据的研究结果产生较大偏差,影响数据的使用效果。因此,对数据集的缺失值进行评估和研究,是至关重要的。
3.目前针对缺失值相关的研究主要包括缺失值检测和缺失值填补两个方面。针对缺失值检测问题,由于大数据集具有维度高,数据量大的特点,目前研究多采用建模方法,根据数据点之间潜在的关联,且不同数据属性之间也存在一定联系,建立缺失值检测模型,从而提高检测准确度并降低时间复杂度。例如现有文献中提出了一种快速检测丢失数据的方法,该方法概率性地对多类别rfid系统的丢失数据进行检测,在满足检测结果可靠的基础上,将检测时间最小化。此外另有一些学者使用交叉验证模型,通过计算数据集的完整性实现对缺失数据的检测,例如建立完整性证据和不可信证据交叉验证模型,完整性证据用于检测数据的完整性,不可信证据用于判定缺失值检测的结果是否可靠。
4.通过上述分析,目前针对缺失值检测方面的研究基本止步于对数据集进行整体缺失度判断,仅仅可以检测出数据集中含有缺失值的数据,无法判断出多维特性数据是多个维度还是仅一个维度发生缺失,缺少对多维特性数据全面立体的分析,不利于后续的数据分析与处理,另一方面,在机器学习和数据挖掘研究领域,为了能从数据集中提取到有用的信息,对缺失数据集进行处理是非常必要的。目前对缺失数据集的处理,包括以下三种方法:
5.1)不作处理。即保持原有带缺失数据的数据集,并对其进行信息挖掘,然而数据集中的维度缺失常常会导致数据类型不匹配的错误,这给后续数据分析与处理带来了挑战,此外,不作处理会导致缺失数据携带的信息价值丢失,从而造成数据分析结果不准确;
6.2)删除数据。删除数据是指将发生缺失的数据点进行删除,并把剩余未缺失的数据点重新归并为一个完整的数据集。该方法简单易行,在面对庞大数据集时仍能保持良好的时效性,然而也存在明显不足,缺失数据点往往携带实际生产过程中的相关重要信息,直
接删除会造成数据价值浪费。虽然在缺失数据占少量比例的情况下,删除数据只会导致数据信息挖掘不完全,但是在数据集缺失程度严重,缺失数据所占比例大的情况下,直接删除缺失数据会造成整个数据集分布完全失真,从而不再具有研究价值;
7.3)填补数据。填补数据是指利用各类算法模型,基于数据点的分布情况,来对缺失数据进行可能值填补,从而得到完整的数据集。该方法可以尽可能地挖掘出缺失数据所含信息,并提高了数据集的完整度,还原了数据集原始的空间分布。目前缺失值填补方法可分为如下三类:
8.①
固定值填补。固定值填补是用特定数值对缺失值进行填补。一般都取0为特定数值。该方法能够有效快速对大数据集进行处理,避免在后续数据分析过程中出现数据类型不匹配的问题。然而固定值填补无法挖掘出缺失数据所蕴含的价值信息,并且会对数据集的分布造成一定的影响。
9.②
替换缺失值。替换缺失值是指用一些数学方法,参考缺失值所在位置的上下文,来计算得到缺失值的可能取值。常用的方法有:平均值填补,中位数填补,众数填补,插值填补等。
10.③
模型填补。模型填补是利用其它完整数据点对缺失值预测模型进行训练,将缺失数据点输入到预测模型,得到缺失位置的可能填补值。常见的如knn(k-nearest neighbor)算法模型,iterative imputer算法模型等。
11.在实际应用过程中,不同情况下对缺失值填补算法的要求往往不同,例如当数据集的缺失程度小,数据分析精度要求低时,往往使用固定值填补方法,从而实现快速填补;当数据分析精度要求较高,缺失程度较大的情况下,使用模型填补能够挖掘出已有数据点之间的联系,从而预估出缺失值。但目前上述三类方法都包含多种缺失值填补方法,如何根据数据集的缺失程度选择最合适的填补方法具有一定的研究意义。


技术实现要素:

12.本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种面向多维特性数据的缺失值检测及填补方法。
13.本发明的目的可以通过以下技术方案来实现:
14.一种面向多维特性数据的缺失值检测及填补方法,该方法包括以下步骤:
15.步骤1:输入待处理的数据集,进行数据整合;
16.步骤2:判断每个数据点的每个维度是否发生缺失,以查找出数据集中发生缺失的数据点的位置及个数;
17.步骤3:确定数据集的整体缺失度;
18.步骤4:确定数据集的维度缺失度;
19.步骤5:确定数据集的加权维度缺失度;
20.步骤6:基于不同的缺失度选择对应的缺失值填补算法进行数据填补。
21.所述的步骤1中,进行数据整合的过程具体为:
22.采用dataframe表格型数据结构格式对数据集进行存储,即将数据集整合成矩阵,以便进行缺失值检测。
23.所述的步骤2,查找出数据集中发生缺失的数据点的位置及个数的过程具体为:
24.定义n*m维全零矩阵nulindex,其中,n代表数据点的数量,m代表每个数据点的维度;
25.在空间中对数据集的行列依次进行检测,并判断每一个数据点xi(0<i<=n,i∈n)的每一个维度x
ij
(0<j<=m,j∈n)是否为空,若判断维度x
ij
为空,则将数据集的第i行第j列标记为nan,并为全零矩阵nulindex的第i行第j列赋值为1,即nulindex[i,j]=1,表明x
ij
发生缺失,反之,则不填充,直至对整个数据集完成检测,以查找出数据集中发生缺失的数据点的位置及个数。
[0026]
所述的步骤3中,确定数据集的整体缺失度的过程具体为:
[0027]
将sumdata定义为缺失数据点总个数,从第一行开始,依次对矩阵nulindex的每一行进行各个维度的求和,若第i行的所有维度总和相加为0,则表明第i行的维度全为0,即该数据点在任意维度上都没有发生缺失,反之,若矩阵nulindex的第i行的各个维度之和不为0,表明第i个数据点发生了缺失,则对缺失数据点总个数sumdata进行加1,以统计缺失数据点总个数;
[0028]
计算数据集整体缺失度,即计算整个数据集中发生缺失的数据点所占的比重,数据集的整体缺失度allms的计算公式为:
[0029][0030]
其中,row(nulindex)表示矩阵nulindex的行数,即数据集所包含数据点的总个数。
[0031]
所述的步骤4中,确定数据集的维度缺失度的过程具体为:
[0032]
维度缺失度的最小单位为一个维度,通过对整个数据集的缺失维度进行求和,获取整个数据集中发生缺失的维度总个数,再将缺失维度个数与数据集的维度总和求商,得到数据集中发生缺失的维度占总维度的百分比,即数据集的维度缺失度,维度缺失度menms的计算公式为:
[0033][0034]
其中,nulindex[i,j]表示矩阵nulindex的第i行第j列,row(nulindex)为矩阵nulindex的行数,column(nulindex)为矩阵nulindex的列数。
[0035]
所述的步骤5中,确定数据集的加权维度缺失度的过程具体为:
[0036]
依次对每一个数据点的每一维度进行检测,并与该维度对应的重要度系数相乘,从而获取该数据点的加权缺失度,再将所有数据点的加权缺失度求和,与数据集的维度总和求商,进而得到数据集的加权维度缺失度,设数据集矩阵的第j列,即数据集的第j个维度,其权重为ωj,所有维度的权重之和等于k,即加权维度缺失度wms的计算公式为:
[0037][0038]
其中,nulindex[i,j]表示矩阵nulindex的第i行第j列,ωj为第j个维度的权重。
[0039]
所述的步骤6中,基于不同缺失度选择合适的缺失值填补算法进行数据填补的过程具体为:
[0040]
步骤601:选择多种缺失值填补算法;
[0041]
步骤602:基于步骤3~5提出的三种缺失度和对缺失值填补算法进行性能比较,即对不同的缺失值填补算法在不同缺失度时填补效果进行全面评估,以确定不同缺失值填补算法的适用情况;
[0042]
步骤603:根据实际数据集的缺失度选择对应的缺失值填补算法。
[0043]
所述的步骤601中,缺失值填补算法包括固定值填补方法中的补零法、替换缺失值方法中的插值填补法和插值填补法以及模型填补方法中的knn填补法和iterative imputer填补法。
[0044]
所述的步骤602中,对不同的缺失值填补算法在不同缺失度时填补效果进行全面评估的过程具体为:
[0045]
采用评价指标f1-score和评价指标rmse评判多种缺失值填补算法的性能,结合两个评价指标对不同缺失值填补算法的性能进行评估:
[0046]
评价指标f1-score用以评判模型预测缺失值的准确度,根据不同缺失值填补模型的填补结果,得到预测的精确率precision和召回率recall,精确率precision表示被正确预测为1的样本占预测为1的样本总数的比例,召回率recall表示被正确预测为1的样本占真实为1的样本总数的比例,评价指标f1-score为精确率和召回率的调和平均数,评价指标f1-score的范围为[0,1],评价指标f1-score的值越大,表明预测结果越准确;
[0047]
评价指标rmse用以评判模型累计预测误差值,通过计算预测结果与真实结果的均方根误差,进一步衡量评判缺失值预测结果是否接近真实结果,评价指标rmse的值越大,表明误差越大,即缺失值填补算法的预测效果越差。
[0048]
所述的评价指标f1-score的计算公式为:
[0049][0050]
所述的评价指标rmse的计算公式为:
[0051][0052]
其中,ei表示原始未发生缺失的数据,表示发生缺失后进行填充的数据,m表示缺失维度总个数。
[0053]
与现有技术相比,本发明具有以如下有益效果:
[0054]
1、本发明针对现有的缺失值检测方法缺少对多维数据进行更全面立体分析的问题,通过设计缺失值检测方法,在整体缺失度基础上,首次提出维度缺失度和加权维度缺失度的概念,基于这三种不同的缺失度概念,实现对多维特性数据集缺失程度的全面检测;
[0055]
2、本发明基于多种缺失度对不同的缺失值填补方法的性能进行对比分析,研究不同缺失值填补方法的适用性,从而根据数据集的缺失程度选择最合适的填补方法,对缺失值填补方法的选择起到良好的指导作用,并提高了适用性。
附图说明
[0056]
图1为本发明的方法流程图。
[0057]
图2为本发明的实施例中的nulindex矩阵示意图。
[0058]
图3为本发明的实施例中的整体缺失度说明示意图。
[0059]
图4为本发明的实施例中的维度缺失度说明示意图。
[0060]
图5为本发明的实施例中的加权维度缺失度说明示意图。
[0061]
图6为本发明实施例的补零法在不同缺失度时的填补结果示意图。
[0062]
图7为本发明实施例的平均值法在不同缺失度时的填补结果示意图。
[0063]
图8为本发明实施例的插值填补法在不同缺失度时的填补结果示意图。
[0064]
图9为本发明实施例的knn填补法在不同缺失度时的填补结果示意图。
[0065]
图10为本发明实施例的iterative imputer填补法在不同缺失度时的填补结果示意图。
具体实施方式
[0066]
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0067]
本发明提供了一种面向多维特性数据的缺失值检测及填补方法,该方法包括以下步骤:
[0068]
步骤1:输入待处理的数据集,进行数据整合;
[0069]
步骤2:判断每个数据点的每个维度是否发生缺失,以查找出数据集中发生缺失的数据点的位置及个数;
[0070]
步骤3:确定数据集的整体缺失度;
[0071]
步骤4:确定数据集的维度缺失度;
[0072]
步骤5:确定数据集的加权维度缺失度;
[0073]
步骤6:基于不同的缺失度选择对应的缺失值填补算法进行数据填补。
[0074]
在步骤1中,进行数据整合的过程具体为:
[0075]
数据集中的每个数据点往往具有多个属性维度,在空间中具有复杂的形态,本实施例采用dataframe表格型数据结构格式对数据集进行存储,存储后的数据集含有一组有序的列,每列可以是不同的值,既有行索引,也有列索引,使得数据点的分布更为直观,以便进行缺失值检测;
[0076]
输入待处理的数据集,并将其整合成n*m阶矩阵,其中,n代表数据点的数量,m代表每个数据点的维度,为了更直观说明,在本实施例中,采用一组6*4阶数据集进行举例描述:
[0077][0078]
其中,d1为n*m阶矩阵,x
nm
为第n行第m列的元素;
[0079]
例如,设数据集d
′1有6个数据点,每个数据点包含4个属性维度,数据集d
′1的表达式为:
[0080][0081]
根据数据集d
′1的分布看出,第一个数据点(第一行)和第四个数据点(第四行)发生了缺失。
[0082]
在步骤2中,查找出数据集中发生缺失的数据点的位置及个数的过程具体为:
[0083]
定义n*m维全零矩阵nulindex,其中,n代表数据点的数量,m代表每个数据点的维度;
[0084]
在空间中对数据集的行列依次进行检测,并判断每一个数据点xi(0<i<=n,i∈n)的每一个维度x
ij
(0<j<=m,j∈n)是否为空,若判断维度x
ij
为空,则将数据集的第i行第j列标记为nan,并为全零矩阵nulindex的第i行第j列赋值为1,即nulindex[i,j]=1,表明x
ij
发生缺失,反之,则不填充,重复进行上述过程直至对整个数据集完成检测,以查找出数据集中发生缺失的数据点的位置及个数,如图2所示,此时nulindex矩阵标记完毕,从空间上直观给出了数据集的缺失分布,被标记为1的表明数据点在相应维度发生了缺失,相应地,在本实施例中,对数据集d
′1检测后,对应的数据集d
′1的表达式为:
[0085][0086]
其矩阵nulindex为:
[0087][0088]
进而查找出数据集中发生缺失的数据点的位置及个数。
[0089]
在步骤3中,确定数据集的整体缺失度的过程具体为:
[0090]
如图3所示,整体缺失度用以衡量整个数据集中具有缺失的数据点占所有数据点
的比重,记为allms,在本实施例中,数据集的第2行和第i行的数据点分别在不同维度发生了缺失,即存在数值为nan的项,因此把第2个和第i个数据点标记为缺失数据点,数据集总体缺失2个单位,整体缺失度的计算方法具体为:
[0091]
统计缺失数据点总个数,首先定义sumdata为缺失数据点的总个数,从第1行开始,依次对矩阵nulindex的每一行进行各个维度的求和,若某一行所有维度总和相加为0,则表明该行维度全为0,即该数据点在任意维度上都没有发生缺失,反之,若矩阵nulindex的第i行各个维度之和不为0,表明第i个数据点发生了缺失,则对sumdata进行加1;
[0092]
计算数据集整体缺失度,数据集的整体缺失度allms的计算公式为:
[0093][0094]
其中,row(nulindex)表示矩阵nulindex的行数,即数据集所包含数据点的总个数;
[0095]
整体缺失度侧重于计算整个数据集中发生缺失的数据点所占的比重,其有效考察了含有缺失值的数据点个数,反应了数据集在整体上的缺失程度。
[0096]
在步骤4中,确定数据集的维度缺失度的过程具体为:
[0097]
在大数据背景下,一个数据点往往会在多个维度发生缺失,倘若只根据整体缺失度对缺失数据点的个数及其所占的比重进行判断较为片面,为了更全面的为数据集缺失质量提供理论支撑,本发明提出维度缺失度这一概念,记为menms,与整体缺失度不同,维度缺失度的最小单位为一个维度,而非一个数据点,维度缺失度用以衡量整个数据集中具有缺失的维度占所有维度的百分比,如图4所示,第2行的第1列、第2列和第j列以及第i行的第3列和第j列为nan,因此,第2个数据点(第2行)在第1列、第2列和第j列这3个维度上发生了缺失,第i个数据点(第i行)在第3列和第j列这2个维度上发生了缺失,数据集总体缺失5个维度单位,维度缺失度menms的具体计算公式如下:
[0098][0099]
其中,nulindex[i,j]表示矩阵nulindex的第i行第j列,row(nulindex)为矩阵nulindex的行数,column(nulindex)为矩阵nulindex的列数,逐行对矩阵nulindex进行每一维度求和,若某一维度发生缺失,则其值被标记为1,通过对整个数据集的缺失维度进行求和,即可得知整个数据集中发生缺失的维度总个数,再将缺失维度个数与数据集的维度总和m*n求商,得到数据集中发生缺失的维度占总维度的百分比,即数据集的维度缺失度。
[0100]
在步骤5中,确定数据集的加权维度缺失度的过程具体为:
[0101]
在生产过程中,数据集的每一维度对企业管理人员的参考价值往往不同,例如根据设备的电流电压参数监测设备的健康状况时,电流和电压两个维度的数据相对温度和湿度等其他维度的数据来说更为重要,即当数据点在电流和电压维度发生缺失会比在其他维度缺失造成更严重的影响,因此,本发明将为数据集的每一维度设定权重比例系数,并引入加权维度缺失度,记为wms,进而更加灵活全面地描述数据集的缺失度,更能符合实际需求;
[0102]
加权维度缺失度具体定义为:
[0103]
设数据集矩阵的第j列,即数据集的第j个维度,其权重为ωj,为了保证数据集的
加权维度缺失度不失真且符合真实情况,需满足所有维度权重系数之和等于k,即
[0104]
在实际生产过程中,ωj的数值由研究人员根据具体需求进行设定,如图5所示,将第i维特性的权重设为ωi,第2行的第1列、第2列和第j列和第i行的第3列和第j列被标记为nan,因此,第2个数据点在3个维度上发生了缺失,缺失ω1+ω2+ωj个单位,第i个数据点在2个维度上发生了缺失,缺失ω3+ωj个单位,数据集总体缺失ω1+ω2+ω3+2ωj个单位,加权维度缺失度wms的计算公式为:
[0105][0106]
其中,nulindex[i,j]表示矩阵nulindex的第i行第j列,ωj为第j个维度的权重,依次对每一个数据点的每一维度进行检测,并与该维度对应的重要度系数相乘,从而求得该数据点的加权缺失度,再将所有数据点的加权缺失度求和,并与数据集的维度总和m*n求商,从而得到数据集的加权维度缺失度。
[0107]
在步骤6中,基于不同缺失度选择合适的缺失值填补算法进行数据填补的过程具体为:
[0108]
缺失值填补方法包括固定值填补、替换缺失值和模型填补方法,在本实施例中,选择固定值填补方法中的补零法、替换缺失值方法中的平均值法和插值填补法以及模型填补方法中的knn(k-nearestneighbor)填补法和iterative imputer填补法这五种典型的缺失值填补算法,基于步骤3~5提出的三种缺失度的概念对五种典型的缺失值填补算法进行性能比较,即对这五种典型的缺失值填补算法在不同缺失度时填补效果进行全面评估,以确定不同缺失值填补算法的适用情况,最终结合实际的数据集的缺失度选择对应的缺失值填补算法。
[0109]
下面将结合具体案例进行说明:
[0110]
为了验证本发明能够基于不同的缺失度选择对应的缺失值填补算法,从常用机器学习数据库uci machine learning repository中选取iris数据集进行实验,iris数据集共包含150个样本数据点,4个属性维度,所有的数据点被分为3个类。
[0111]
在本实施例中,从整体缺失度和维度缺失度的大小关系出发,评价缺失度对填补算法性能的影响,设置五组不同缺失程度的对比数据集:20-05、20-15、40-15、60-15和60-45,如表1所示,介绍数据集的具体信息,列举每个数据集发生缺失的数据点个数、发生缺失的维度个数、整体缺失度和维度缺失度这四个属性,例如,20-15表示用随机方法构建整体缺失度为20%,维度缺失度为15%的数据集,该数据集发生缺失的数据点个数为30个,发生缺失的维度个数为90个,平均每个数据点在3个维度上发生了缺失;
[0112]
表1数据集介绍表
[0113][0114]
根据上述缺失度的设置,这些数据集囊括了allms偏小menms偏小、allms偏小menms偏大、allms中等menms中等、allms偏大menms偏小以及allms偏大menms偏大五种情况,后续将在这五组数据集的基础上,对步骤s6中五种缺失值填补算法进行全面性能评估。
[0115]
本发明采用典型的f1-score和rmse这两个评价指标评判多种缺失值填补算法的性能,f1-score用以有效判断预测分类和实际分类的相似程度,根据不同缺失值填补模型(缺失值填补算法)的填补结果,得到预测的精确率precision和召回率recall,精确率precision表示被正确预测为1的样本占预测为1的样本总数的比例,召回率recall表示被正确预测为1的样本占真实为1的样本总数的比例,评价指标f1-score为精确率和召回率的调和平均数,评价指标f1-score的计算公式为:
[0116][0117]
评价指标f1-score的范围为[0,1],评价指标f1-score的值越大,表明预测结果越好,另一个评价指标rmse通过计算预测结果与真实结果的均方根误差,用以进一步衡量评判缺失值预测结果是否接近真实结果,评价指标rmse的计算公式为:
[0118][0119]
其中,ei表示原始未发生缺失的数据,表示发生缺失后进行填充的数据,m表示缺失维度总个数,评价指标rmse的值越大,表明误差越大,缺失值填补算法的预测效果越不好。
[0120]
综上所述,评价指标f1-score用以评判模型预测缺失值的准确度,而评价指标rmse用以评判模型累计预测误差值,结合这两个指标对不同缺失值填补算法的性能进行评估,根据步骤s6中的五种缺失值填补算法进行实验,展示了五种填补算法在不同缺失程度数据集上的填补效果。
[0121]
如图6~10所示,得到如下结论:
[0122]
1)补零法和平均值法在每种缺失度下的填补效果均不好,因此仅可以在对填补精度要求不高时使用;
[0123]
2)在维度缺失度不高的情况下,基于模型的knn填补法和iterative imputer填补
法均有较好的填补效果,knn填补法和iterative imputer填补法均为基于预测模型的缺失值填补算法,但是iterative imputer填补法的性能总是优于knn填补法,因为iterative imputer填补法是通过循环更改输入变量训练缺失值预测模型,因此误差更小,填补效果更好;
[0124]
3)在维度缺失度较大的情况下,即单个数据点缺失维度较多的情况下,插值法具有最好的填补效果。
[0125]
综上所述,本实施例可以证明,通过对数据集的缺失度进行全面系统的评估能够对缺失值填补算法的选择起到良好的指导作用,进而实现对多维特性数据集缺失程度的全面检测,提高了数据填补效果。
[0126]
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1