CN107193876B - 一种基于最近邻knn算法的缺失数据填补方法 - Google Patents

一种基于最近邻knn算法的缺失数据填补方法 Download PDF

Info

Publication number
CN107193876B
CN107193876B CN201710267672.2A CN201710267672A CN107193876B CN 107193876 B CN107193876 B CN 107193876B CN 201710267672 A CN201710267672 A CN 201710267672A CN 107193876 B CN107193876 B CN 107193876B
Authority
CN
China
Prior art keywords
data
missing
model
data set
knn
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710267672.2A
Other languages
English (en)
Other versions
CN107193876A (zh
Inventor
程宏亮
刘宏
白朝旭
饶思维
张建
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meritdata Technology Co ltd
Original Assignee
Meritdata Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Meritdata Technology Co ltd filed Critical Meritdata Technology Co ltd
Priority to CN201710267672.2A priority Critical patent/CN107193876B/zh
Publication of CN107193876A publication Critical patent/CN107193876A/zh
Application granted granted Critical
Publication of CN107193876B publication Critical patent/CN107193876B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors

Abstract

本发明公开了一种基于最近邻KNN算法的缺失数据填补方法,包括:自动识别数据集中的存在缺失值的特征属性;遍历存在缺失值的特征属性利用近邻KNN算法逐步填充缺失值;在对每一个特征属性进行缺失值填充过程中,迭代KNN算法参数k,获得不同参数配置的KNN模型簇;根据优化目标函数遴选最优模型,并利用该模型对缺失数据进行缺失值填充。由于算法参数k对KNN算法影响较大,在此,我们采用寻优的策略运用到缺失值填充模型的建模中,可以很大程度提高模型的精度,填充数据的质量相应有了很大程度的提高。

Description

一种基于最近邻KNN算法的缺失数据填补方法
技术领域
本发明涉及企业数据治理领域,更具体的说,是一种基于最近邻KNN算法的缺失数据填补方法,涉及企业级数据治理体系下的缺失数据。
背景技术
数据治理是指从使用零散数据变为使用统一主数据、从具有很少或没有组织和流程治理到企业范围内的综合数据治理的过程。企业数据治理以提升企业数据质量为目的,通过制定相关的流程、政策、标准以及相关技术手段,用以保障企业数据信息的完整性、及时性、准确性、一致性和安全性。
而现实世界中的数据是错综复杂的,它们不可避免的存在数据缺失问题。数据缺失是企业数据信息的完整性存在的最大问题,也受到企业数据信息管理的极大重视,缺失数据智能填补方法能够很好的解决企业数据信息管理中缺失数据的问题,保障企业数据信息的完整性。
发明内容
本发明的目的是提供一种基于最近邻KNN算法的缺失数据填补方法,涉及企业级数据治理体系下的缺失数据,以解决企业结构化数据存在大量缺失值数据的问题,保障企业数据信息的完整性。
为了实现上述目的,本发明提供如下技术方案:
一种基于最近邻KNN算法的缺失数据填补方法,包括以下步骤:
步骤一、检验数据集,若数据集存在缺失值,自动获取存在缺失值的属性列集合以及对应的数据类型;
步骤二、对步骤一中的数据集进行预处理操作以满足KNN模型支持的数据格式后,构建训练数据集和验证数据集;
步骤三、根据训练数据集和验证数据集构建KNN模型;
步骤四、基于验证数据集和模型优化目标函数筛选最优KNN模型;
步骤五、基于最优KNN模型完成缺失值数据的预测和智能填充。
在本发明的一个优选实施例中,所述步骤二中预处理之后的数据进行筛选,针对步骤二中的数据集中的名词型属性列,对其做名词数据标签化处理,对于数据集中的数值型属性列,对其做数据归一化或标准化处理。
在本发明的一个优选实施例中,判断所述步骤一中缺失值数据集量,若无缺失值数据集数据量不大,则对步骤二中预处理之后的数据集随机拆分训练数据集和验证数据集;
若无缺失值数据集数据量较大,则对步骤二中预处理之后的数据集进行随机抽样或系统抽样的形式构建训练数据集和验证数据集。
在本发明的一个优选实施例中,保留步骤二中数据预处理之前的相关数据以供步骤五使用。
在本发明的一个优选实施例中,利用训练数据集和不同KNN模型参数建模得到KNN模型簇包括:
基于训练数据集对缺失值智能填补建模,如果属性列的数据类型为数值型数据,设定KNN模型参数k(近邻个数)的区间为[4,6],如果属性列cj的数据类型为名词型数据,设定缺失值属性列名词类别个数为p,由此设定k的区间为[p,p+2],基于训练数据集Δ和不同的KNN模型参数k构建KNN模型簇Λ=[M1,M2,...MT]。
在本发明的一个优选实施例中,步骤四中筛选最优KNN模型,包括:
基于验证数据集和KNN模型簇Λ中的每一个模型得到验证数据集的预测集;
基于验证数据集的预测集和原始数据,利用模型优化目标函数筛选最优KNN模型。
在本发明的一个优选实施例中,所述基于验证数据集和KNN模型簇Λ中的每一个模型得到验证数据集的预测集,包括:
假定选取验证数据集的记录g剔除特定属性列数据构建缺失值数据;
计算记录g与验证数据集每个记录的欧式距离di(zi,g):
Figure BDA0001276501200000021
根据欧式距离di(zi,g)最小的k个数据记录作为记录g的k最近邻;
计算缺失值记录g最近邻的权值,缺失值类型为数值型数据情况下:
Figure BDA0001276501200000031
缺失值类型为名词型数据情况下,wl为k最近邻中各个类别出现的频次;
根据缺失值数据列cj在k最近邻中对应的值xl估算缺失数据的值
Figure BDA0001276501200000037
缺失值类型为数值型数据情况下:
Figure BDA0001276501200000032
缺失值类型为名词型数据情况下,
Figure BDA0001276501200000033
为k最近邻中出现频次最大的类别;
由此,得出预测数据集YPredict
YPredict=[y1,y2,...,yM]T
在本发明的一个优选实施例中,所述利用模型优化目标函数筛选最优KNN模型,包括:
缺失值类型为数值型数据情况下,目标函数S设定为:
Figure BDA0001276501200000034
其中,m表示验证集的数据样本数,gf表示验证集中每个样本在缺失值数据列cj的真实值,
Figure BDA0001276501200000035
为gf对应的模型填充值。
缺失值类型为名词型数据情况下,目标函数S设定为:
Figure BDA0001276501200000036
其中,m表示验证集的数据样本数,h表示模型填充值和对应的验证集每个样本在缺失值数据列cj的真实值相等的个数,ε为平滑因子。
基于验证数据集的原始值YTrue和预测数据集YPredict,依据模型优化目标函数对KNN模型簇Λ=[M1,M2,...MT]得到优化模型MQ
在本发明的一个优选实施例中,所述基于最优KNN模型完成缺失值数据的预测和智能填充,包括:
基于缺失值数据构建矩阵XLost
Figure BDA0001276501200000041
带入数据XLost到模型MQ得到预测数据集YPredict
如果属性列cj为名词型属性列,对预测数据YPredict进行反标签化复原数据,如果属性列cj为数值型属性列,对预测数据YPredict进行反归一化或标准化复原数据。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1基于最近邻KNN算法的缺失数据智能填补模型流程图,给出了缺失数据填补的最近邻KNN算法流程;
图2企业级数据治理体系缺失数据智能填补方法流程图,给出了企业级数据治理体系缺失数据智能填补方法的详细内容和操作流程;
图3缺失值数据填充准备工作流程图,给出了缺失值数据填充的准备工作流程;
图4完成数据属性列缺失值填充模型的训练个模型优化流程图,给出了缺失值填充模型的建模过程和参数优化流程;
图5基于优化的缺失值填充模型完成对缺失值数据的填充流程图,给出了基于最优化模型的缺失值数据的填充流程和复原数据处理操作;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。、
参照图1,步骤1、将目标数据(缺失值数据)构建为KNN模型支持的数据格式;
步骤2、数据预处理操作,对于数据集中的名词型属性列,对其做名词数据标签化处理,对于数据集中的数值型属性列,对其做数据归一化或标准化处理;
步骤3、计算目标数据与训练数据集每条记录的欧式距离di(zi,g):
Figure BDA0001276501200000051
步骤4、找出目标数据的k最近邻数据记录z:
z[z1,z2,...,zk]
步骤5、计算目标数据最近邻的权值w:
Figure BDA0001276501200000052
步骤6、计算预测数据:
Figure BDA0001276501200000053
步骤7、预测数据反向预处理,如果属性列为名词型属性列,对预测数据进行反标签化复原数据,如果属性列为数值型属性列,对预测数据进行反归一化或标准化复原数据。
参照图2,请参阅图2,其示出了本发明实施例提供的企业级数据治理体系缺失数据智能填补方法流程图,以下给出详细说明:
执行缺失值数据填充建模准备工作,获得无缺失值的样本构建完全值数据矩阵包括:
自动获取存在缺失值的属性列以及对应的数据类型,并根据每列数据的数据类型做相应预处理操作,对于数据集中的名词型属性列,对其做名词数据标签化处理,此外保留数据预处理的相关信息供数据复原使用;
对于数据集中的数值型属性列,对其做数据归一化或标准化处理,消除数据量级和单位的不统一对KNN模型预测精度的影响,此外保留数据预处理的相关信息供数据复原使用;
将预处理后的数据构建完全值数据矩阵Δ;
Figure BDA0001276501200000061
将完全值数据矩阵拆分得到训练数据集和验证数据集包括:
如果无缺失值数据集数据量不大,则对数据集随机拆分训练数据集和验证数据集;如果无缺失值数据集数据量较大,则对数据集进行随机抽样或系统抽样的形式构建训练数据集和验证数据集;
基于KNN模型参数最近邻个数k引入参数寻优策略,利用训练数据集和不同KNN模型参数建模得到KNN模型簇包括:
基于训练数据集对缺失值智能填补建模,如果属性列的数据类型为数值型数据,设定KNN模型参数k(近邻个数)的区间为[4,6]。如果属性列cj的数据类型为名词型数据,设定缺失值属性列名词类别个数为p,由此设定k的区间为[p,p+2],基于训练数据集Δ和不同的KNN模型参数k构建KNN模型簇Λ=[M1,M2,...MT];
基于验证数据集和KNN模型簇Λ中的每一个模型得到验证数据集的预测集包括:假定选取验证数据集的记录g剔除特定属性列数据构建缺失值数据;
计算记录g与验证数据集每个记录的欧式距离di(zi,g):
Figure BDA0001276501200000062
根据欧式距离di(zi,g)最小的k个数据记录作为记录g的k最近邻;
计算缺失值记录g最近邻的权值,缺失值类型为数值型数据情况下:
Figure BDA0001276501200000071
缺失值类型为名词型数据情况下,wl为k最近邻中各个类别出现的频次;
根据缺失值数据列cj在k最近邻中对应的值xl估算缺失数据的值
Figure BDA0001276501200000077
缺失值类型为数值型数据情况下:
Figure BDA0001276501200000072
缺失值类型为名词型数据情况下,
Figure BDA0001276501200000073
为k最近邻中出现频次最大的类别;
由此,得出预测数据集YPredict
YPredict=[y1,y2,...,yM]T
基于验证数据集的预测集和原始数据,利用模型优化目标函数筛选最优KNN模型包括:
缺失值类型为数值型数据情况下,目标函数S设定为:
Figure BDA0001276501200000074
其中,m表示验证集的数据样本数,gf表示验证集中每个样本在缺失值数据列cj的真实值,
Figure BDA0001276501200000075
为gf对应的模型填充值。
缺失值类型为名词型数据情况下,目标函数S设定为:
Figure BDA0001276501200000076
其中,m表示验证集的数据样本数,h表示模型填充值和对应的验证集每个样本在缺失值数据列cj的真实值相等的个数,ε为平滑因子。
基于验证数据集的原始值YTrue和预测数据集YPredict,依据模型优化目标函数对KNN模型簇Λ=[M1,M2,...MT]得到优化模型MQ
基于最优KNN模型完成缺失值数据的预测和智能填充包括:
基于缺失值数据构建矩阵XLost
Figure BDA0001276501200000081
带入数据XLost到模型MQ得到预测数据集YPredict
如果属性列cj为名词型属性列,对预测数据YPredict进行反标签化复原数据,如果属性列cj为数值型属性列,对预测数据YPredict进行反归一化或标准化复原数据。
请参阅图3,其示出了本发明实施例提供的缺失值数据填充准备工作流程图,可以包括:
S101:检验数据集,如果数据集不存在缺失值,算法结束不做任何处理,如果数据集存在缺失值,自动获取存在缺失值的属性列(注:在此定义数据集为一张二维数据表,数据表的每一列称之为属性列,数据表的每一行称之为一条记录)集合C以及对应的数据类型;
S102:对数据集进行预处理为缺失值填充建模(KNN模型)做准备,对于数据集中的名词型属性列,对其做名词数据标签化处理,此外保留数据预处理的相关信息供数据复原使用。
S103:对数据集进行预处理为缺失值填充建模(KNN模型)做准备,对于数据集中的数值型属性列,对其做数据归一化或标准化处理,消除数据量级和单位的不统一对KNN模型预测精度的影响,此外保留数据预处理的相关信息供数据复原使用。
归一化处理方法:
Figure BDA0001276501200000082
其中,Amin:A的最大值,Amax:A的最大值。
标准化处理方法:
Figure BDA0001276501200000083
其中,μ:A的均值,σ:A的方差。
此外保留数据预处理的相关信息供数据复原使用。
获得预处理的数据后,假定第j列数据存在缺失值,将缺失值j列定义为Y,抽离j列剩余的数据定义为X,将Y列数据拼接到X后构建如下形式的完全值数据矩阵Δ:
Figure BDA0001276501200000091
请参阅图4,其示出了本发明实施例提供的完成数据属性列缺失值填充模型的训练个模型优化流程图,可以包括:
S201:遍历存在缺失值的属性列集合C,逐一对每列数据进行缺失值智能填补处理。
遍历数据集的每条记录判断记录是否存在缺失值,将数据集拆分为无缺失值数据和存在缺失值数据集;
S202:如果无缺失值数据集数据量不大(10万级以下),则对数据集随机拆分训练数据集和验证数据集,如果无缺失值数据集数据量较大(10万级以上),则对数据集进行随机抽样或系统抽样的形式构建训练数据集和验证数据集。
数据集的格式如Δ下所示,比如对属性列cj进行缺失值填充构建数据集时,X=[X1,X2,...,XM]T为非属性列cj数据,Y=Xj为属性列cj数据。
Figure BDA0001276501200000092
S203:基于训练数据集对存在缺失值的属性列cj进行缺失值智能填补建模,如果属性列cj的数据类型为数值型数据,设定KNN模型参数k(近邻个数)的区间为[4,6],如果属性列cj的数据类型为名词型数据,设定缺失值属性列名词类别个数为p,由此设定k的区间为[p,p+2],基于训练数据集Δ和不同的KNN模型参数k构建KNN模型簇Λ=[M1,M2,...MT]。
S204:基于验证集数据对KNN模型簇Λ进行筛选操作,在对存在缺失值的属性列cj进行缺失值填补而选择最优模型MQ时,对于验证集中的记录gi=[g|Yg]=[x1,x2,...,xN|xj],由每一个模型Mt计算和记录gi最近邻的k个记录z=[z1,z2,...,zk],其中,
Figure BDA0001276501200000101
其中,i∈[1,M],j∈[1,N],根据z得出缺失值的属性列cj的k近邻记录的第cj的对应值
Figure BDA0001276501200000102
当缺失值类型为数值型数据情况下,由g=[x1,x2,...,xN],zi=[xi,1,xi,2,…xi,N],
Figure BDA0001276501200000103
分别计算记录gi和记录gi最近邻的k个记录zk的欧式距离di(zi,g)和权值W,进而求出记录gi的预测值
Figure BDA00012765012000001013
计算公式如下:
Figure BDA0001276501200000104
Figure BDA0001276501200000105
Figure BDA0001276501200000106
当缺失值类型为名词型数据情况下,根据记录gi的k近邻记录的第cj的对应值
Figure BDA0001276501200000107
采用投票机制,以yj的众数作为记录gi的预测值
Figure BDA00012765012000001014
如果存在并列众数的情况时,随机选择其中一种作为记录gi的预测值
Figure BDA00012765012000001015
根据以上得出记录gi的预测值
Figure BDA0001276501200000108
S205:由验证集的记录gi求出对应的预测值
Figure BDA0001276501200000109
那么,遍历验证集中的每条记录,可以得到预测集
Figure BDA00012765012000001010
当缺失值类型为数值型数据情况下,对比验证集的每条记录的原始值g=[g1,g2,...,gM]和预测集
Figure BDA00012765012000001011
带入目标函数S,由此得到模型Mt的预测精度st
Figure BDA00012765012000001012
其中,ε为平滑因子。
当缺失值类型为名词型数据情况下,对比验证集的每条记录的原始值g=[g1,g2,...,gM]和预测集
Figure BDA0001276501200000111
带入目标函数S,由此得到模型Mt的预测精度st
Figure BDA0001276501200000112
其中,m表示验证集的数据样本数,h表示模型填充值和对应的验证集每个样本在缺失值数据列cj的真实值相等的个数。
上述求出了模型Mt的预测精度st,那么对KNN模型簇Λ=[M1,M2,...MT]中的每个模型执行同样操作得到KNN模型簇Λ的模型精度S=[s1,s2,...,sk]。
S206:根据KNN模型簇Λ的模型精度S=[s1,s2,…,sk]对KNN模型簇Λ做模型筛选得到最优的模型MQ作为属性列cj的缺失值填充模型。
请参阅图5,其示出了本发明实施例提供的基于优化的缺失值填充模型完成对缺失值数据的填充流程图,可以包括:
S301:执行S201-S206步骤的操作完成属性列cj的缺失值填充模型的训练和参数优化操作得到最优的缺失值填充模型MQ,由属性列cj缺失值数据剔除cj构建数据矩阵XLost
Figure BDA0001276501200000113
带入数据XLost到模型MQ执行S204得到预测数据集YPredict
YPredict=[y1,y2,...,yM]T
S302:如果属性列cj为名词型属性列,根据S102保留的数据标签化处理的相关信息对预测数据YPredict进行反标签化复原数据,如果属性列cj为数值型属性列,根据S103保留的数据归一化或标准化处理的相关信息对预测数据YPredict进行反归一化或标准化复原数据。
S303:检验是否对所有的缺失值属性列完成缺失值填充,如果完成则结束进程,如果未完成则执行S301-S302。
具体示例:
接下来以某产品销售数据为例说明基于最近邻KNN算法的企业级数据治理体系缺失数据智能填补方法:
我们在此抽取一部分数据作为说明,原始数据如下表所示,其中,序号为200102和200104条记录分别对应于“客户状态”列和“运输成本”列为缺失数据。
表1,某产品销售数据
序号(c1) 客户状态(c2) 运输成本(c3) 单价(c4) 产品保证金(c5)
200101 Texas 23 4 0.36
200102 Michigan - 1 0.26
200103 Texas 1 7 0.36
200104 - 6 28 0.51
200105 Carolina 5 21 0.21
200106 Texas 11 11 0.36
200107 Carolina 6 4 0.21
210101 Texas 5 21 0.51
SS101:遍历数据表,获得存在缺失值字段集合C={’客户状态’:String,’运输成本’:Int}
SS102-103:执行预处理操作,由于‘客户状态’是名次列,对其做名词数据标签化处理,‘运输成本’列为数值列,对其做数据归一化处理:
表2,预处理后的数据
序号(c1) 客户状态(c2) 运输成本(c3) 单价(c4) 产品保证金(c5)
200101 0 1.0 0.11 0.5
200102 1 - 0.0 0.17
200103 0 0.0 0.22 0.5
200104 - 0.23 1.0 1.0
200105 2 0.18 0.74 0.0
200106 0 0.45 0.37 0.5
200107 2 0.23 0.11 0.21
210101 0 0.18 0.71 1.0
标签化处理的相关信息为{‘客户状态’:[Texas-0,Michigan-1,Carolina-2]},数据归一化处理的相关信息为{‘运输成本’:[max-23,min-1],单价:[max-28,min-1],‘产品保证金’:[max-0.51,min-0.21]},保留这些相关信息供数据复原使用。
SS201-SS206:从预处理后的数据中随机拆分构建KNN模型的训练数据集和测试数据集,在此,我们以‘客户状态’数据列建模训练数据集和测试数据集的构建过程为例:
模型训练数据集
Figure BDA0001276501200000131
Figure BDA0001276501200000132
模型测试数据集
Figure BDA0001276501200000133
Figure BDA0001276501200000134
在此,基于KNN模型参数k={3,4,5,6}构造模型簇KnnModel:
KnnModel={Mk=3,Mk=4,Mk=5,Mk=6}
基于模型测试数据集
Figure BDA0001276501200000135
对模型簇KnnModel中的模型择优,分别得到每个模型预测得到的k个近邻,在此,以k=4为例,即基于模型Mk=4做预测。
以测试集第一条记录X1为例:
X1=[0.0 0.22 0.5|1]
模型Mk=4对X1预测的最近邻记录为:
Figure BDA0001276501200000136
记录X1的预测值为X1=[0.0 0.22 0.5|predict=1],预测正确。
同理,对测试集每一条记录做预测,判断每一条记录的预测正确与否,最终,会得到模型Mk=4的正确率。那么,分别对模型簇KnnModel中每个模型做以上操作得到对应的着正确率,选取正确率最大的模型为最有模型。
同理,基于以上类似过程可以完成数值属性列缺失值填充模型的寻优操作,获得最优模型。
SS301:带入数据XLost到缺失值填充模型执行得到预测数据predict,在此,以近邻k=4为例:
(1)针对名次列‘客户状态’做缺失值预测和填充,比如对100104记录缺失值填充过程如下:
‘客户状态’缺失值填充KNN模型数据为:
Figure BDA0001276501200000141
记录100104数据为:
Figure BDA0001276501200000142
KNN模型预测的最近邻4的记录为:
Figure BDA0001276501200000143
求得
Figure BDA0001276501200000144
的4个最近邻点的预测值:
predict=[0,1,2,0]
根据投票机制,最近邻4的记录中,0出现次数最多,因此对应缺失数据预测为0:
X200104=[0.23 1.0 1.0|predict=0]
(2)针对数值列‘运输成本’做缺失值预测和填充,比如对100102记录缺失值填充过程如下:
‘运输成本’缺失值填充KNN模型数据为:
Figure BDA0001276501200000145
记录100102数据为:
Figure BDA0001276501200000146
KNN模型预测的最近邻4的记录为:
Figure BDA0001276501200000151
由距离公式
Figure BDA0001276501200000152
求得
Figure BDA0001276501200000153
4个最近邻点的距离为:
d(x200102,k)=[1.06,1.26,1.12,1.01]
由权值公式:
Figure BDA0001276501200000154
可得:
w(x200102,k)=[0.238,0.283,0.252,0.227]
由预测值公式:
Figure BDA0001276501200000155
可得:
X200102=[1 0.0 0.17|predict=0.45]
将缺失值预测值填入对应的原始数据:
表3,填充缺失值的销售数据
序号(c1) 客户状态(c2) 运输成本(c3) 单价(c4) 产品保证金(c5)
200101 0 1.0 0.11 0.5
200102 1 0.45 0.0 0.17
200103 0 0.0 0.22 0.5
200104 0 0.23 1.0 1.0
200105 2 0.18 0.74 0.0
200106 0 0.45 0.37 0.5
200107 2 0.23 0.11 0.21
210101 0 0.18 0.71 1.0
SS302:对名词型属性列,进行反标签化复原数据,对数值型属性列,反归一化复原数据:
表4,复原后的销售数据
序号(c1) 客户状态(c2) 运输成本(c3) 单价(c4) 产品保证金(c5)
200101 Texas 23 4 0.36
200102 Michigan 11 1 0.26
200103 Texas 1 7 0.36
200104 Texas 6 28 0.51
200105 Carolina 5 21 0.21
200106 Texas 11 11 0.36
200107 Carolina 6 4 0.21
210101 Texas 5 21 0.51
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (6)

1.一种基于最近邻KNN算法的缺失数据填补方法,包括以下步骤:
步骤一、检验数据集,若数据集存在缺失值,自动获取存在缺失值的属性列集合以及对应的数据类型,
步骤二、对步骤一中的数据集进行预处理操作以满足KNN模型支持的数据格式后,构建训练数据集和验证数据集;
步骤三、根据训练数据集和验证数据集构建KNN模型;
步骤四、基于验证数据集和模型优化目标函数筛选最优KNN模型;
步骤五、基于最优KNN模型完成缺失值数据的预测和智能填充;
步骤四中筛选最优KNN模型,包括:
基于验证数据集和KNN模型簇Λ中的每一个模型得到验证数据集的预测集;
基于验证数据集的预测集和原始数据,利用模型优化目标函数筛选最优KNN模型;
所述基于验证数据集和KNN模型簇Λ中的每一个模型得到验证数据集的预测集,包括:
假定选取验证数据集的记录g剔除特定属性列数据构建缺失值数据;
计算记录g与验证数据集每个记录的欧式距离di(zi,g):
Figure FDA0002600480620000011
根据欧式距离di(zi,g)最小的k个数据记录作为记录g的k最近邻;
计算缺失值记录g最近邻的权值,缺失值类型为数值型数据情况下:
Figure FDA0002600480620000012
根据缺失值数据列cj在k最近邻中对应的值xl估算缺失数据的值
Figure FDA0002600480620000013
缺失值类型为数值型数据情况下:
Figure FDA0002600480620000014
缺失值类型为名词型数据情况下,W为目标数据最近邻的权值;wl为k最近邻中各个类别出现的频次;
Figure FDA0002600480620000015
为k最近邻中出现频次最大的类别;yl缺失值数据列cj的k近邻记录的第cj的对应值;
由此,得出预测数据集YPredict
YPredict=[y1,y2,...,yM]T
所述利用模型优化目标函数筛选最优KNN模型,包括:
缺失值类型为数值型数据情况下,目标函数S设定为:
Figure FDA0002600480620000021
其中,m表示验证集的数据样本数,gf表示验证集中每个样本在缺失值数据列cj的真实值,
Figure FDA0002600480620000022
为gf对应的模型填充值;
缺失值类型为名词型数据情况下,目标函数S设定为:
Figure FDA0002600480620000023
其中,m表示验证集的数据样本数,h表示模型填充值和对应的验证集每个样本在缺失值数据列cj的真实值相等的个数;
基于验证数据集的原始值YTrue和预测数据集YPredict,依据模型优化目标函数对KNN模型簇Λ=[M1,M2,...MT]得到优化模型MQ
2.根据权利要求1所述的一种基于最近邻KNN算法的缺失数据填补方法,其特征在于,所述步骤二中预处理之后的数据进行筛选,针对步骤二中的数据集中的名词型属性列,对其做名词数据标签化处理,对于数据集中的数值型属性列,对其做数据归一化或标准化处理。
3.根据权利要求1所述的一种基于最近邻KNN算法的缺失数据填补方法,其特征在于,判断所述步骤一中缺失值数据集量,若无缺失值数据集数据量不大,则对步骤二中预处理之后的数据集随机拆分训练数据集和验证数据集;
若无缺失值数据集数据量较大,则对步骤二中预处理之后的数据集进行随机抽样或系统抽样的形式构建训练数据集和验证数据集。
4.根据权利要求2所述的一种基于最近邻KNN算法的缺失数据填补方法,其特征在于,保留步骤二中数据预处理之前的相关数据以供步骤五使用。
5.根据权利要求2所述的一种基于最近邻KNN算法的缺失数据填补方法,其特征在于,利用训练数据集和不同KNN模型参数建模得到KNN模型簇包括:
基于训练数据集对缺失值智能填补建模,如果属性列的数据类型为数值型数据,设定KNN模型参数k的区间为[4,6],如果属性列cj的数据类型为名词型数据,设定缺失值属性列名词类别个数为p,由此设定k的区间为[p,p+2],基于训练数据集Δ和不同的KNN模型参数k构建KNN模型簇Λ=[M1,M2,...,MT]。
6.根据权利要求1所述的一种基于最近邻KNN算法的缺失数据填补方法,其特征在于,所述基于最优KNN模型完成缺失值数据的预测和智能填充,包括:
基于缺失值数据构建矩阵XLost
Figure FDA0002600480620000031
带入数据XLost到模型MQ得到预测数据集YPredict
如果属性列cj为名词型属性列,对预测数据YPredict进行反标签化复原数据,如果属性列cj为数值型属性列,对预测数据YPredict进行反归一化或标准化复原数据。
CN201710267672.2A 2017-04-21 2017-04-21 一种基于最近邻knn算法的缺失数据填补方法 Active CN107193876B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710267672.2A CN107193876B (zh) 2017-04-21 2017-04-21 一种基于最近邻knn算法的缺失数据填补方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710267672.2A CN107193876B (zh) 2017-04-21 2017-04-21 一种基于最近邻knn算法的缺失数据填补方法

Publications (2)

Publication Number Publication Date
CN107193876A CN107193876A (zh) 2017-09-22
CN107193876B true CN107193876B (zh) 2020-10-09

Family

ID=59872308

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710267672.2A Active CN107193876B (zh) 2017-04-21 2017-04-21 一种基于最近邻knn算法的缺失数据填补方法

Country Status (1)

Country Link
CN (1) CN107193876B (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109564641B (zh) * 2017-10-16 2023-08-25 深圳乐信软件技术有限公司 数据填补方法和装置
CN107862409B (zh) * 2017-11-06 2021-11-02 重庆大学 一种基于回归分析的变电站输变电设备大量缺失数据填补方法
CN108228896B (zh) * 2018-02-05 2019-02-05 清华大学 一种基于密度的缺失数据填补方法及装置
CN110309129A (zh) * 2018-03-19 2019-10-08 中国移动通信集团甘肃有限公司 一种补全位置数据的方法及装置
CN108492560A (zh) * 2018-04-04 2018-09-04 东南大学 一种道路检测器缺失数据补全方法及装置
CN108846555B (zh) * 2018-05-24 2021-09-24 四川大学 一种电力负荷大数据缺失值的高效精确填补法
CN108873401B (zh) * 2018-06-22 2020-10-09 西安电子科技大学 基于大数据的液晶显示器响应时间预测方法
CN110674621A (zh) * 2018-07-03 2020-01-10 北京京东尚科信息技术有限公司 一种属性信息填充方法和装置
CN108921229A (zh) * 2018-07-17 2018-11-30 成都西加云杉科技有限公司 数据恢复方法及装置
CN109325655A (zh) * 2018-08-13 2019-02-12 平安科技(深圳)有限公司 人群绩效特征预测中的缺失特征处理方法及装置
CN109243620B (zh) * 2018-09-07 2020-10-02 上海交通大学医学院附属新华医院 基于血药浓度监测的药效优化方法及装置
CN110895721B (zh) * 2018-09-12 2021-11-16 珠海格力电器股份有限公司 电器功能的预测方法及装置
CN109034676B (zh) * 2018-10-22 2022-01-14 西南交通大学 不完备指标权重信息下的配电网故障恢复方案区间评估方法
CN109614392B (zh) * 2018-10-25 2023-08-08 珠海派诺科技股份有限公司 中断历史数据自动修复方法、装置、电子设备及介质
CN111382890B (zh) * 2018-12-27 2022-04-12 珠海格力电器股份有限公司 一种家电安装量预测方法、系统及存储介质
CN110097920B (zh) * 2019-04-10 2022-09-20 大连理工大学 一种基于近邻稳定性的代谢组学数据缺失值填充方法
CN110274995A (zh) * 2019-06-18 2019-09-24 深圳市美兆环境股份有限公司 填充数据的确定方法、装置及计算机设备
CN110348122B (zh) * 2019-07-11 2023-01-17 东北大学 基于特征选择的季节型非平稳并发量能耗分析方法
CN110516200A (zh) * 2019-09-03 2019-11-29 吉林大学 一种海洋数据回归模型获得方法及装置
CN110991696B (zh) * 2019-11-04 2022-11-04 广州丰石科技有限公司 一种客流数据缺失填补的方法
CN110991866B (zh) * 2019-11-29 2022-09-06 国网江苏省电力有限公司电力科学研究院 一种基于机器学习的台区数据缺失值补全方法和装置
CN111259916A (zh) * 2020-02-12 2020-06-09 东华大学 一种标签缺失情况下的低秩投影特征提取方法
CN111352966A (zh) * 2020-02-24 2020-06-30 交通运输部水运科学研究所 一种自主航行中的数据标签标定方法
CN111861798A (zh) * 2020-08-07 2020-10-30 上海积成能源科技有限公司 一种基于近邻算法的居民用电数据缺失值插补方法
CN112150201A (zh) * 2020-09-23 2020-12-29 创络(上海)数据科技有限公司 基于knn的时序迁移学习在销量预测中的应用
CN113177608B (zh) * 2021-05-21 2023-09-05 河南大学 一种针对不完整数据的近邻模型特征选择方法及装置
CN113312587B (zh) * 2021-06-16 2023-09-22 福建中锐网络股份有限公司 基于arima预测和回归预测的传感器采集数据缺失值处理方法
CN113435536A (zh) * 2021-07-15 2021-09-24 广东电网有限责任公司 一种电费数据预处理方法、装置、终端设备及介质
CN113515896B (zh) * 2021-08-06 2022-08-09 红云红河烟草(集团)有限责任公司 用于卷烟实时数采的数据缺失值填充方法
CN114356985B (zh) * 2021-12-24 2024-04-02 深圳市傲天科技股份有限公司 信息估计方法、装置、设备及存储介质
CN114564472B (zh) * 2022-04-26 2022-07-05 安徽博微广成信息科技有限公司 元数据扩充方法以及存储介质、电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103544218A (zh) * 2013-09-29 2014-01-29 广西师范大学 非固定k值的最近邻填充方法
CN104516879A (zh) * 2013-09-26 2015-04-15 Sap欧洲公司 用于管理含有具有缺失值的记录的数据库的方法和系统
CN106096324A (zh) * 2016-08-26 2016-11-09 清华大学 基于k近邻回归的输变电主设备负荷数据缺失填补算法
CN106407464A (zh) * 2016-10-12 2017-02-15 南京航空航天大学 一种基于knn的改进缺失数据填补算法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8073652B2 (en) * 2008-07-03 2011-12-06 Caterpillar Inc. Method and system for pre-processing data using the mahalanobis distance (MD)

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104516879A (zh) * 2013-09-26 2015-04-15 Sap欧洲公司 用于管理含有具有缺失值的记录的数据库的方法和系统
CN103544218A (zh) * 2013-09-29 2014-01-29 广西师范大学 非固定k值的最近邻填充方法
CN106096324A (zh) * 2016-08-26 2016-11-09 清华大学 基于k近邻回归的输变电主设备负荷数据缺失填补算法
CN106407464A (zh) * 2016-10-12 2017-02-15 南京航空航天大学 一种基于knn的改进缺失数据填补算法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
APT-KNN:一种面向分类问题的高效缺失值填充算法;徐宇明;《计算机应用与软件》;20110430;第28卷(第4期);第135-139页 *

Also Published As

Publication number Publication date
CN107193876A (zh) 2017-09-22

Similar Documents

Publication Publication Date Title
CN107193876B (zh) 一种基于最近邻knn算法的缺失数据填补方法
CN108564286B (zh) 一种基于大数据征信的人工智能金融风控授信评定方法和系统
TWI789345B (zh) 機器學習模型的建模方法及裝置
KR102044205B1 (ko) 빅데이터와 기계학습을 이용한 타겟 정보 예측 시스템 및 예측 방법
US7930242B2 (en) Methods and systems for multi-credit reporting agency data modeling
CN107122327B (zh) 一种利用训练数据训练模型的方法和训练系统
CN109543925B (zh) 基于机器学习的风险预测方法、装置、计算机设备和存储介质
CN112700325A (zh) 一种基于Stacking集成学习的网贷回头客预测的方法
CN113111924A (zh) 电力客户分类方法及装置
CN111861514B (zh) 一种人员推荐方法及人员推荐系统
CN113409150A (zh) 经营风险及信用风险评估方法、装置及计算机存储介质
CN114662793A (zh) 基于可解释分层模型的业务流程剩余时间预测方法与系统
CN109977977B (zh) 一种识别潜在用户的方法及对应装置
CN108647714A (zh) 负面标签权重的获取方法、终端设备及介质
CN113674013B (zh) 一种基于商户自定义规则的广告竞价调整方法及系统
CN114693428A (zh) 数据确定方法、装置、计算机可读存储介质及电子设备
CN114282657A (zh) 一种市场数据长期预测模型训练方法、装置、设备及存储介质
CN112434471A (zh) 提升模型泛化能力的方法、系统、电子设备及存储介质
CN112765451A (zh) 一种基于集成学习算法的客户智能筛选方法和系统
CN113850523A (zh) 基于数据补全的esg指数确定方法及相关产品
CN113177733A (zh) 基于卷积神经网络的中小微企业数据建模方法及系统
CN113159419A (zh) 一种群体特征画像分析方法、装置、设备及可读存储介质
CN115601152A (zh) 违约概率确定方法及装置
Wang et al. Multi-Objective Planning Model Based on the Soft Voting Ensemble Learning Algorithm
Lucas et al. How Clean is Clean Enough? Determining the Most Effective Use of Resources in the Data Cleansing Process

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP02 Change in the address of a patent holder

Address after: 710075 6th floor, national e-commerce demonstration base, No.528, tianguba Road, software new town, high tech Zone, Xi'an City, Shaanxi Province

Patentee after: MERITDATA TECHNOLOGY CO.,LTD.

Address before: 710000 C501, Hanyun Pavilion, Xi'an Software Park, No.68, Keji 2nd Road, high tech Zone, Xi'an City, Shaanxi Province

Patentee before: MERITDATA TECHNOLOGY CO.,LTD.

CP02 Change in the address of a patent holder