发明内容
本申请实施例提供一种缺失数据填补方法、装置和计算机可读存储介质,用以解决现有技术中无法高效处理包含缺失数据的属性数据的问题。
第一方面,本申请实施例中提供了一种缺失数据填补方法,包括:
获取待处理的缺失数据集,所述缺失数据集为初始数据集中包缺失数据元组的集合,所述初始数据集包括在一时段内的多个不同时刻采集的多条数据元组,所述数据元组包含多维属性数据,所述缺失数据元组为包含缺失数据的数据元组;
确定所述缺失数据集中每个缺失数据对应的至少一个候选值;
将所述每个缺失数据的至少一个候选值进行融合获得替换值;
利用所述替换值替换所述缺失数据集中对应的缺失数据,得到填补后的数据集。
可选地,所述方法是利用缺失数据填补模型实现的,所述缺失数据填补模型包括数据破损层、数据处理层、数据分析层;
所述数据破损层用于将所述缺失数据集中的缺失数据替换为设定值;
所述数据处理层用于确定所述缺失数据集中每个缺失数据对应的至少一个候选值;
所述数据分析层用于将所述每个缺失数据的至少一个候选值进行融合获得替换值。
可选地,所述缺失数据填补模型是利用完整数据集训练得到的,所述完整数据集是所述初始数据集不包含缺失数据的完整数据元组集合,在训练过程中,所述数据破损层将所述完整数据集中的部分数据替换为设定值,以模拟缺失数据,模拟缺失数据的缺失模式与所述缺失数据集中的缺失数据的缺失模式一致。
可选地,所述数据处理层具体用于:通过编码器生成每个缺失数据所在缺失数据元组对应的隐变量的后验分布,并对所述隐变量的后验分布进行至少一次采样,获取至少一个隐变量样本;并通过解码器解码所述至少一个隐变量样本,以生成所述每个缺失数据对应的至少一个候选值。
可选地,所述通过编码器生成每个缺失数据所在缺失数据元组对应的隐变量的后验分布,并对所述隐变量的后验分布进行至少一次采样,获取至少一个隐变量样本,包括:
通过编码器生成每个缺失数据所在缺失数据元组
对应隐变量
的后验分布
,并对所述后验分布
进行m次采样,获取m个隐变量样本
;
其中,
,
表示为缺失数据元组
对
应隐变量
的后验分布,
表示为编码器分布参数,m表示为采样m次,
表示为第i个缺失
数据元组
的第一个隐变量样本,
表示为第i个缺失数据元组
的第m个隐变量样本。
可选地,所述通过解码器解码所述至少一个隐变量样本,以生成所述每个缺失数据对应的至少一个候选值,包括:
通过解码器解码所述至少一个隐变量样本,以生成包含缺失数据的缺失数据元组
对应的m个候选数据元组
;从m个候选数据元组中确定每个缺失数据对应
的至少一个候选值;
其中,
=
,
表示为对第
一个隐变量样本进行解码得到的缺失数据元组
对应的候选数据元组,
表示为对第m
个隐变量样本进行解码得到的缺失数据元组
对应的候选数据元组,
表示为m个隐变量样本送入解码器的计算函数。
可选地,所述将所述每个缺失数据的至少一个候选值进行融合获得替换值,包括:
至少一个候选值进行加权融合,以生成所述替换值。
第二方面,本申请实施例提供了一种缺失数据填补装置,包括:
获取模块,用于获取待处理的缺失数据集,所述缺失数据集为初始数据集中包缺失数据元组的集合,所述初始数据集包括在一时段内的多个不同时刻采集的多条数据元组,所述数据元组包含多维属性数据,所述缺失数据元组为包含缺失数据的数据元组;
确定模块,用于确定所述缺失数据集中每个缺失数据对应的至少一个候选值;
融合模块,用于将所述每个缺失数据的至少一个候选值进行融合获得替换值;
生成模块,用于利用所述替换值替换所述缺失数据集中对应的缺失数据,得到填补后的数据集。
第三方面,本申请实施例提供了一种电子设备,包括存储组件及处理组件;所述存储组件存储一条或多条计算机程序指令,所述计算机程序指令供所述处理组件调用执行,所述处理组件执行所述一条或多条计算机程序指令以实现如上述第一方面所述的缺失数据填补方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时实现如上述第一方面所述的缺失数据填补方法。
第五方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包含计算机程序指令,所述计算机程序指令被计算机执行时实现如上述第一方面所述的缺失数据填补方法。
本申请实施例中,通过确定缺失数据集中每个缺失数据对应的至少一个候选值;将每个缺失数据的至少一个候选值进行融合获得替换值;并利用替换值替换所述缺失数据集中对应的缺失数据,将包含缺失数据的数据集填补为完整数据集,从而有利于上层属性数据分析算法对属性数据的分析。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在本申请的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
近年来,随着各领域的发展随之产生了大量属性数据,各领域对应的属性数据对于各领域的发展有着非常重要的意义。其中,各领域对应的属性数据可以是设备在运行过程中产生的多个维度的属性数据。例如,属性数据可以是交通设备(如汽车、火车、飞机等)在行驶过程中产生的属性数据,或者是计算机设备(如手机、电脑、智能手表等)在执行程序过程中产生的属性数据,或者是电力设备(如大型风机、变电设备等)在运行过程中所产生的属性数据。
例如,以智能汽车领域为例,随着智能汽车的发展,随之带来了大量的车辆健康及车辆行驶数据(以下简称车辆数据),这些车辆数据对保障智能汽车监控系统的准确性至关重要。具体地,智能汽车的车辆健康监控系统对于车辆全生命周期的把控至关重要。其中,车辆健康监控系统主要监控的车辆数据可包括车辆的磨合保养、空调滤芯、轮胎压力、电池电压、制动液、冷却液、行驶总里程、剩余公里数等等,这些车辆数据从各种角度反映了车辆的使用情况及其健康状况,并基于这些车辆数据以及驾驶员对车辆的使用情况数据,做出行为模式分析给予驾驶员合理的建议。此外,通过车辆数据还能够及时发现车辆异常,以便及时提醒驾驶员,避免发生意外。因此车辆数据的完整性十分重要。
然而,在实际应用中,受硬件设备故障、网络拥堵等不可控因素影响,可能会造成部分数据缺失的问题,从而影响了相关系统的数据准确性。
为保证属性数据的准确性,目前针对属性数据缺失的处理方案,通常是通过数据挖掘、监测算法等上层车辆数据分析算法以处理属性数据中的缺失数据,然而这些方案并不能够高效准确地填补缺失数据。
因此目前在高效并准确的填补缺失数据问题上,仍需要一个更优的填补方法,以提高属性数据质量,为后续的属性数据分析提供保障。基于上述一系列思考及试验之后,发明人提出了本申请的技术方案,具体提供了一种缺失数据填补方法,该方法包括:获取待处理的缺失数据集,所述缺失数据集为初始数据集中包缺失数据元组的集合,所述初始数据集包括在一时段内的多个不同时刻采集的多条数据元组,所述数据元组包含多维属性数据,所述缺失数据元组为包含缺失数据的数据元组;确定所述缺失数据集中每个缺失数据对应的至少一个候选值;将所述每个缺失数据的至少一个候选值进行融合获得替换值;利用所述替换值替换所述缺失数据集中对应的缺失数据,得到填补后的数据集。
应当理解,对于在某一时段内采集到的属性数据,该属性数据中可包括n条数据元组,且每条数据元组为这一时间段的不同时刻所采集到的属性数据,具体可以包括。其中部分数据元组中可能存在缺失数据,这类数据元组可称为缺失数据元组;而另外部分数据元组中可能并不存在缺失数据,即该部分数据元组是完整的,这类数据元组可称为完整数据元组。这里待处理的缺失数据集可以是某一时段的不同时段所采集到的包含缺失数据的缺失数据元组集合。
通过确定缺失数据集中每个缺失数据对应的至少一个候选值;将每个缺失数据的至少一个候选值进行融合获得替换值;并利用替换值替换所述缺失数据集中对应的缺失数据,将包含缺失数据的数据集填补为完整数据集,从而有利于上层属性数据分析算法对属性数据的分析。
其中,该方法可以利用缺失数据填补模型实现,该缺失数据填补模型可以基于深度学习模型来实现。例如,可以基于自编码器(Autoencoder,简称AE)、去噪自编码器(denoising autoencoder,简称DAE)和变分自编码器(Variational Autoencoder,简称VAE)等深度学习模型实现。
在一些实施例中,缺失数据填补模型可以是基于变分自编码器(VariationalAutoencoder,简称VAE)模型改进的得到的,发明人研究发现由于VAE模型并非为缺失数据填补而设计的,若直接使用现有的VAE模型实现缺失数据填补,其表现甚至不如简单的单值填补算法。发明人经过大量研究之后,考虑到缺失数据的影响,本申请在缺失数据填补模型中引入了数据破损层,数据破损层用以在完整数据集中引入与缺失数据集缺失模式一致的缺失数据,以便缺失数据填补模型得到更为准确的填补结果。进一步地,对于每个缺失数据而言,可以对多个候选值进行简单平均即生成替换值。而本申请为进一步提高填补精度,在缺失数据填补模型中引入数据分析层,通过数据分析层中的神经网络模型对多个候选值进行加权融合以得到替换值。此外,本申请的缺失数据填补模型可一次生成多个缺失数据对应的多个替换数据元组,避免了为生成多个候选数据元组进行重复工作的问题,有利于提高对高维数据的处理效率。
所述缺失数据填补模型包括数据破损层、数据处理层、数据分析层;所述数据破损层用于将所述缺失数据集中的缺失数据替换为设定值;所述数据处理层用于确定所述缺失数据集中每个缺失数据对应的至少一个候选值;所述数据分析层用于将所述每个缺失数据的至少一个候选值进行融合获得替换值。在缺失数据填补模型输出替换值后,再利用所述替换值替换所述缺失数据集中对应的缺失数据,得到填补后的数据集。
本申请实施例中,缺失数据填补模型是基于VAE模型改进得到,VAE模型具有良好的数据压缩能力,能有效处理高维数据,因此在此VAE模型基础上改进得到的缺失数据填补模型,不仅具有高效处理高维数据的能力,还能够实现多重填补功能,因此通过基于上述缺失数据填补模型实现的缺失数据填补方法,能够通过缺失数据的至少一个候选值得到替换值,并利用替换值对缺失数据进行填补,将包含缺失数据的数据集填补为完整数据集,从而有利于上层属性数据分析算法对属性数据的分析。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,本申请实施例提供了缺失数据填补模型的模型结构示意图,其中,缺失数据填补模型1包括数据破损层11、数据处理层12、数据分析层13。
其中,在缺失数据填补模型的训练过程中,首先需要获取样本数据。
本申请实施例中,以本申请的缺失数据填补模型用以实现属性数据中的缺失数据填补为例,样本数据可以是某一时段内采集到的完整数据集。该时段内采集到车辆数据中可包括n条数据元组,且每条数据元组为这一时间段内的不同时刻所采集到的车辆数据。n条数据元组可包括缺失数据元组和完整数据元组,其中,缺失数据元组表示为包含缺失数据的数据元组,完整数据元组表示为不包含缺失数据的数据元组。完整数据集为完整数据元组的集合。需要说明的是,上述的属性数据可以是设备在运行过程中产生的多个维度的属性数据,例如,属性数据可以是车辆数据、飞机数据、程序运行数据等,本申请对此不做限定,具体可根据实际情况进行获取相关的属性数据以形成样本数据。
数据破损层11可以在训练集(即完整数据集)中引入与待填补的缺失数据集缺失模式一致的缺失数据。
其中,通常用一个掩模矩阵(mask matrix)
来描
述样本数据
中缺失数据的分布情况,即若
缺失,则
;否则
。根据样
本数据
中缺失数据元组与完整数据元组之间的关系,可将缺失模式分为以下三种:完全
随机缺失(Missing Completely at Random,简称MCAR)、随机缺失(Missing at Random,简
称MAR)和非随机缺失(Missing Not at Random,简称MNAR)。假设
为掩模向量
的条件概率分布,
是与缺失模式有关的未知参
数,则在数学上有如下表达形式:
MCAR:
,即数据元组缺失的概率既不依赖于观测值
,也
不依赖于缺失数据
。
MNAR:
,即数据元组缺失的概率既依赖观测值
,
又依赖观测值
。
由于缺失数据集中的缺失数据是随机产生的(即数据元组缺失的概率既不依赖于观测值,也不依赖于缺失数据),因此本申请主要是针对MCAR这一缺失模式导致数据缺失的情况,故而需要将后续在完整训练集引入的缺失数据的缺失模式设置为MCAR,使其缺失模式与缺失数据集中缺失数据的缺失模式一致。
下面,本申请的缺失数据填补模型用以实现属性数据中的缺失数据填补,下面介绍缺失数据填补模型的训练过程。
数据破损层11用于随机将完整数据集中的部分数据替换为设定值,以模拟缺失数据,且该缺失数据的缺失模式为MCAR。其中,设定值可根据需要设定,例如,设定值可包括0或者列均值。
所述数据处理层12用于生成完整数据集中每个设定值对应的至少一个候选值。需要说明的是,此时的设定值用于模拟缺失数据,因此该设定值可理解为缺失数据,此时的候选值实际上是候选数据元组,候选数据元组中包含设定值对应的候选值。这里的至少一个候选值是基于后验分布来确定的。
本申请实施例中,数据处理层12的处理过程实际上是一种多重填补过程,其中,多重填补是通过模拟数据的后验分布来反映缺失数据引起的不确定性,并从后验分布中为每个缺失数据选取多个可能的填补值弥补单一填补的不足,使得填补结果更加接近真实值,因此本申请通过数据处理层12有利于提高填补结果的准确性。
所述数据分析层13用于将所述每个设定值的至少一个候选值进行融合获得替换值。此时的替换值实际上是替换数据元组,替换数据元组中包含设定值对应的替换值。
本申请实施例中,缺失数据填补模型可一次生成多个缺失数据对应的多个替换数据元组,避免了为生成多个候选数据元组进行重复工作的问题,有利于提高对高维数据的处理效率。
在训练过程中,可以计算数据分析层13得到的替换值与设定值所对应的真实值(即完整数据集中那些被替换为设定值的部分数据,其本身对应的真实值)之间的差距,即计算损失函数。并根据损失函数的值来更新缺失数据填补模型,使得替换值与真实值之间的差距更加接近,以最小化损失函数。其中,损失函数越小,表示缺失数据填补模型输出替换值与真实值之间误差越小,通过调整权重参数,使得损失函数最小化。其中,调整权重参数的方式,例如,可通过对损失函数求导,若导数为负,则使权重参数向正方向改变,反之向负方向改变;若导数为零,则停止调整。本申请实施例中,损失函数是根据替换值与真实值来确定的,通过重复多次不断的根据损失函数来调整模型参数,直至损失函数最小化或者到达预设训练次数,以完成缺失数据填补模型的训练。
关于设定值、真实值以及缺失数据的概念,举个例子进行说明。在完整数据集中某一数据元组的冷却液温度为0.682,0.682即为真实值,在缺失数据填补模型训练时,将该数据替换为0,以模拟缺失数据,用于训练模型,此时,0即为设定值,也可以理解为缺失数据。
在缺失数据填补模型训练完成后,可通过缺失数据填补模型实现本申请的缺失数据填补,具体地,在执行缺失数据填补方法时,首先获取待处理的缺失数据集,所述缺失数据集为初始数据集中缺失数据元组的集合,所述初始数据集包括在一时段内的多个不同时刻采集的多条数据元组,所述数据元组包含多维属性数据,所述缺失数据元组为包含缺失数据的数据元组。需要说明的是,该缺失数据填补模型训练时所采用的完整数据集与该缺失数据集同属一个初始数据集。也就是说,拿到一时段内的初始数据集后,利用该初始数据集中的完整数据集训练缺失数据填补模型,然后用训练好的缺失数据填补模型来对该时段的初始数据集中的缺失数据集进行填补。
其次通过缺失数据填补模型中的所述数据破损层11将所述缺失数据集中的缺失数据替换为设定值,通过数据处理层12确定所述缺失数据集中每个缺失数据对应的至少一个候选值,再通过数据分析层13将所述每个缺失数据的至少一个候选值进行融合获得替换值,最后利用所述替换值替换所述缺失数据集中对应的缺失数据,得到填补后的数据集。
可选地,所述数据处理层12具体用于:通过编码器生成每个缺失数据所在缺失数据元组对应的隐变量的后验分布,并对所述隐变量的后验分布进行至少一次采样,获取至少一个隐变量样本;并通过解码器解码所述至少一个隐变量样本,以生成所述每个缺失数据对应的至少一个候选值。
需要说明的是,缺失数据填补模型最终输出的是缺失数据元组对应的替换数据元组,然后从替换数据元组中取出替换值替换掉待处理的缺失数据集中的缺失数据(替换过程不是模型的执行过程),得到填补后的初始数据集。本申请实施例所提供的缺失数据填补模型能够有效适用于高维数据处理。
在对本申请所提供的缺失数据填补方法进行介绍之前,先对本申请所涉及的概念进行简要介绍:
(1)关于数据元组
数据集X可包括n条数据元组
,且每条数据元组
包含模式空
间
中的d维属性,即
,其中
表示
在属性
上的观测值。
(2)关于隐变量
对于每一条d维数据元组
,均对应一个m维的隐变量
,且通常情况
下
,即隐变量
可视作数据元组
经过压缩后得到的潜在特征。
对于数据元组
,若
上的观测值
均存在,则称
为一条完整
数据元组;若
,
的观测值缺失,则称
为一条缺失数据元组。
相应的,对于数据集
的每一维属性
,若
,其在属性
上的观测值缺失,则
称
为缺失属性;否则称
为完整属性。数据元组
也可被划分为观测元素和缺失元
素两部分,表示为
,分别由完整属性和缺失属性上的元素值组成。
例如,根据数据破损层11的工作,可先将数据集X可划分为完整数据集
和缺
失数据集
两部分,表示为
,分别由完整数据集(包含多个完整数据
元组)和缺失数据集(包含多个缺失数据元组)组成,再将完整数据集
中随机选取任意
观测值替换为设定值后以模拟缺失数据,对模型进行训练。
以下将对本申请技术方案进行详细阐述。
如图2所示,为本申请提供的一种缺失数据填补模型训练方法的流程图,该方法可以包括以下步骤:
201、 获取完整数据集;
在该步骤中,完整数据集是在一时间段内采集到的初始数据集中不包含缺失数据的完整数据元组集合。初始数据集是指未进行缺失数据填补前所采集的原始数据集合。
本申请实施例中,可通过对初始数据集进行遍历,若初始数据集中所包含的任一数据为0、负值、或者与该属性平均值相差过大,均可将该数据标记为缺失数据,该缺失数据所在的数据元组即为缺失数据元组,不包含缺失数据的数据元组即为完整数据元组,完整数据集即为完整数据元组的集合。202、随机将所述完整数据集中的部分数据替换为设定值,以模拟缺失数据;
在该步骤中,模拟缺失数据的缺失模式与所述缺失数据集中的缺失数据的缺失模式一致。所述设定值包括0或者列均值,也可以是其他值,本申请实施例对此不予限定。
本申请实施例中,作为一种可能实现的方案,车通过辆数据填补模型1的数据破损层11随机将所述完整数据集中的部分数据替换为设定值,以模拟缺失数据。其中,替换设定值后的数据仍以数据元组的形式输入数据处理层12。
例如,以某一完整数据集包括3个数据元组,且每个数据元组包括3个观测值为例,完整数据集包括:{12,23,24}、{14,25,34}、{15,25,46},随机将第一个数据元组中的第一个观测值替换为设定值0,形成被替换的数据集合,其中,被替换的观测值用以模拟缺失数据,且被替换的数据集合以模拟缺失数据集,即该缺失数据集包括:{0,23,24}、{14,25,34}、{15,25,46},后续需要使用该缺失数据集进行模型训练。
其中,观测值是指数据元组中每个元素所对应的元素值。例如,以某一数据元组中包含冷却液温度这一元素,则冷却液温度所对应的具体温度即为元素值,也叫观测值,也可称为真实值。
203、利用替换后的完整数据集训练缺失数据填补模型。
在该步骤中,此时的完整数据集为部分数据已被替换为设定值的数据集,并非初始的完整数据集。
本申请实施例中,通过缺失数据填补模型中的数据处理层12生成该完整数据集中每个设定值对应的至少一个候选值,再通过数据分析层13将所述每个设定值的至少一个候选值进行融合获得替换值。通过分析该替换值与设定值对应的真实值之间的差距,重复多次的根据损失函数来调整模型参数,直至损失函数最小化或者到达预设训练次数,以完成缺失数据填补模型的训练。
其中,关于数据处理层12以及数据分析层13具体执行过程,在下文缺失数据填补方法中同样涉及,可参见下述实施例。
需要说明的是,为了进一步提高缺失数据填补模型的精度。本申请实施例中,可以将与待处理的缺失数据集在同一时段内采集的完整数据集作为训练集,因为对于同一时段内采集到的车辆数据而言,车辆自身状态即车辆的使用情况和监控状况保持在一个相对稳定的状态,在该同一时段内采集到的车辆缺失数据和车辆完整数据的相关性更为密切,将同一时段的完整数据集作为训练样本训练缺失数据填补模型,能够有效提高缺失数据对应的替换值的精确度。例如,可以利用同一天上午采集的初始数据集中完整数据元组的集合作为样本训练缺失数据填补模型,然后用训练好的缺失数据填补模型处理同一天上午采集的缺失数据元组的集合,以得到该缺失数据元组中缺失数据对应的替换值。
需要说明的是,上述步骤201-203可以是任意领域或者任意场景的属性数据进行缺失数据填补模型的训练过程,关于属性数据,本申请不做限定,可根据需求设定。例如,以属性数据包括车辆数据为例,步骤201-203的缺失数据填补模型的训练过程,可包括:可获取车辆完整数据集,其中,车辆完整数据集是在一时间段内采集到的车辆数据集中完整数据元组集合;随机将所述车辆完整数据集中的部分数据替换为设定值,以模拟缺失数据;利用替换后的车辆完整数据集训练缺失数据填补模型。
如图3所示,为本申请提供的一种缺失数据填补方法的流程图,该方法可以包括以下步骤:
301、获取待处理的缺失数据集,所述缺失数据集为初始数据集中包缺失数据元组的集合,所述初始数据集包括在一时段内的多个不同时刻采集的多条数据元组,所述数据元组包含多维属性数据,所述缺失数据元组为包含缺失数据的数据元组;
302、确定所述缺失数据集中每个缺失数据对应的至少一个候选值;
本申请实施例中,作为一种可能实现的方案,步骤302具体包括:
首先,将该缺失数据集输入上述图2实施例训练好的缺失数据填补模型,通过模型的数据破损层将所述缺失数据集中的缺失数据替换为设定值。这一步的目的在于:由于在训练缺失数据填补模型时是随机将所述完整数据集中的部分数据替换为设定值,以模拟缺失数据,因此通过将所述缺失数据集中的缺失数据也替换为设定值,有利于提高后续计算候选值的精度,这是由于缺失数据的体现形式通常为0、负值、或者与该属性平均值相差过大,倘若不将缺失数据替换为设定值,可能会影响后续计算候选值的精度。
其次,通过数据处理层确定所述缺失数据集中每个缺失数据对应的至少一个候选值。
其中,所述数据处理层具体用于:通过编码器生成每个缺失数据所在缺失数据元组对应的隐变量的后验分布,并对所述隐变量的后验分布进行至少一次采样,获取至少一个隐变量样本;并通过解码器解码所述至少一个隐变量样本,以生成所述每个缺失数据对应的至少一个候选值。
本申请实施例中,可选地,通过编码器生成每个缺失数据所在缺失数据元组对应的隐变量的后验分布,并对所述隐变量的后验分布进行至少一次采样,获取至少一个隐变量样本的过程,可包括:
通过编码器生成每个缺失数据所在缺失数据元组
对应隐变量
的后验分布
,并对所述后验分布
进行m次采样,获取m个隐变量样本
;
其中,
,
表示为缺失数据元组
对
应隐变量
的后验分布,
表示为编码器分布参数,m表示为采样m次,
表示为第i个缺失
数据元组
的第一个隐变量样本,
表示为第i个缺失数据元组
的第m个隐变量样本。
在执行本可选方案之前,需要说明的是,由于在实际应用中,由于解码器分布
很难直接获得,因此VAE模型通过隐变量z将解码器分布
描述为以下公式:
其中,
表示为解码器分布参数,
表示为解码器分布,
表示为隐变
量z的条件分布,
表示为隐变量z的先验分布,
表示为积分公式。
基于公式(1)的生成模型先从隐变量z的先验分布
中采样得到隐变量z,然后
在条件分布
中采集生成新的隐变量样本。但由于模型训练过程中需要最大化对数
似然函数来求解解码器分布参数
,即对于给定的训练样本X=
,
,其中,n表示为训练样本X包括n条数据元组,i表示为第i个数据元
组。
由于模型训练阶段必然要计算
,为了解决这一问题,VAE模型引入隐变量z
的后验分布
,其中,
表示为数据元组
对应隐变量
的后验分布,使得
;
其中,
表示为给定隐变量z的情况下生成样本
的概率,
表示为隐变量z的后验分布
和隐变量的先验分布
的
KL散度,
表示为隐变量z的近似后验分布
与隐变量的
真实后验分布
的KL散度。进一步,实际应用中,由于
无法计算,但根据KL散度的性质可知
,因此VAE模型将公
式
的变分下界记为
,并基于模型的损失函数,通过最大化变分下界
对解码器分布参数
和编码器分布参数
进行近似求解,具体为公式(2)。
其中,
表示为变分下界,
表示为解码器分布参数,
表示为编码器分
布参数,
表示为最大变分下界。
因此,基于上述概念介绍,可先通过编码器生成每个缺失数据所在缺失数据元组对应的隐变量的后验分布,并对所述隐变量的后验分布进行至少一次采样,获取至少一个隐变量样本,再通过解码器对其进行解码。
其中,对所述后验分布
进行至少一次采样,以获取第一隐变量样本的过
程中,可假设
为各缺失数据元组
彼此独立的高斯分布,即对于每个缺失数据元
组
,均对应一个高斯分布
,其中,
表示为均值,
表示为方差,具体参数由
两个编码器进行拟合,即通过高斯分布
以及公式(3),得到隐变量z,
,其中,e表示为随机误差(
)。具体地公式(3)如下所示:
缺失数据填补模型从后验分布
中进行
次采样,得到隐变量
样本
。
其中,
表示为缺失数据元组
对应隐变量
的后验分布,
表示为编码
器分布参数,m表示为采样m次,
表示为第i个缺失数据元组
的第一个隐变量样本,
表示为第i个缺失数据元组
的第m个隐变量样本。
可选地,通过解码器解码所述至少一个隐变量样本,以生成所述每个缺失数据对
应的至少一个候选值,可包括:通过解码器解码所述至少一个隐变量样本,以生成包含缺失
数据的缺失数据元组对应的m个候选数据元组
;从m个候选数据元组中确
定每个缺失数据对应的至少一个候选值;
其中,
=
,
表示为对第
一个隐变量样本进行解码得到的缺失数据元组
对应的候选数据元组,
表示为对第m
个隐变量样本进行解码得到的缺失数据元组
对应的候选数据元组,
表示为m个隐变量样本送入解码器的计算函
数。
在该可选方案中,首先需要确定解码器分布,再通过解码器分布解码至少一个隐
变量样本。其中,在模型训练完毕后,基于模型的损失函数,通过最大化变分下界对解码器
分布参数
和编码器分布参数
进行近似求解(具体参见上述公式(2)),并根据所述解码
器分布参数确定解码器分布,具体包括以下公式(4):
其中,
表示为解码器分布,
表示为m个隐
变量样本送入解码器的计算函数,
表示为通过
m个隐变量样本计算出的解码器分布。
其次,在获取解码器分布的基础上,再通过解码器解码所述至少一个隐变量样本,以生成包含缺失数据的缺失数据元组对应的m个候选数据元组,从m个候选数据元组中确定缺失数据对应的至少一个候选值。
其中,解码器解码所述至少一个隐变量样本,以生成包含缺失数据的缺失数据元
组对应的m个候选数据元组的过程,可先通过解码器对隐变量z的解码,可一对一生成与缺
失数据元组同分布的还原值,也就是说,
个隐变量样本经由解码器可得到
个的还原
值。
303、将所述每个缺失数据的至少一个候选值进行融合获得替换值;
本申请实施例中,在多重填补过程中,当针对每个缺失数据得到多个候选值后,需进一步对的多个候选值进行有效融合以得到替换值。
作为一种可能实现的方案,可将步骤303得到的m个候选值经过缺失数据填补模型
的数据分析层进行加权融合处理,得到唯一的替换值,具体可通过以下公式(5)得到所述缺
失数据集中的缺失数据
对应的替换值
。
其中,
表示为缺失数据
对应的替换值,
表示为
m个隐变量样本送入解码器的计算函数,
表示为数据
分析层的计算过程。
其中,数据分析层也可以采用神经网络模式实现。具体的,关于加权融合的过程,可选地,通过数据分析层学习至少一个候选值的权重系数;根据至少一个候选值的权重系数,对至少一个候选值进行融合,以生成替换值。
进一步地,再通过以下公式(6),利用所述替换值替换所述缺失数据集中对应的缺失数据。
其中,
表示为缺失数据集的第j条数据元组,
表示为填补完的第j条数
据元组。
304、利用所述替换值替换所述缺失数据集中对应的缺失数据,得到填补后的数据集。
本申请实施例中,作为一种可能实现的方案,在完成上述公式(6)的替换后,根据公式(7)实现生成填补后的数据集:
其中,S指的是one-hot编码矩阵,缺失为1,完整为0;
表示为完整数据集,
表示为缺失数据集,
表示为填补后的缺失数据集。
为便于理解缺失数据填补过程,以属性数据为车辆数据为例,做出以下示例:
表1为某一车辆数据集test的一个数据片段,该车辆数据集包括行驶总里程数(A-mile)、冷却液温度(T-coolant)、冷却液剩余容量(C- coolant)、电池压力(T-power)、和上次充电时间(TM-spark)等多个属性(仅示出部分属性)。表中数据显示的数值是基于min-max标准化后的结果 ,并用“Y”表示缺失数据。
表1-test
数据元组 |
A-mile |
T-coolant |
C- coolant |
… |
T-power |
TM-spark |
|
0.425 |
0.682 |
0.480 |
... |
0.617 |
0.105 |
|
0.266 |
0.663 |
0.785 |
... |
0.801 |
0.015 |
|
0.424 |
0.884 |
0.760 |
... |
0.674 |
Y |
|
0.370 |
0.646 |
0.658 |
... |
Y |
0.018 |
|
0.271 |
0.463 |
0.677 |
... |
0.762 |
0.054 |
|
0.373 |
0.302 |
0.562 |
... |
0.836 |
0.007 |
|
0.268 |
0.188 |
0.613 |
... |
0.762 |
Y |
|
0.348 |
0.2936 |
0.541 |
... |
0.675 |
0.041 |
… |
… |
… |
… |
… |
… |
… |
步骤1:以表1提供的数据(暂不考虑未示出数据)为例,确定车辆完整数据集
包
括:
,具体地,车辆完整数据集
包括{0.425 0.682 0.480 ...
0.617 0.105}、{0.266 0.663 0.785 ... 0.801 0.015}、{0.271 0.463 0.677 ... 0.762
0.054}、{0.373 0.302 0.562 ... 0.836 0.007}、{0.348 0.2936 0.541 ... 0.675
0.041}。
步骤2:随机将
中的部分数据修改为设定值0,以获得破损数据集。例如,将
中
的{0.015}修改为设定值0,
中的{0.054}修改为设定值0,由此得到的破损数据集
包括
{0.425 0.682 0.480 ... 0.617 0.105}、{0.266 0.663 0.785 ... 0.801 0}、{0.271
0.463 0.677 ... 0.762 0}、{0.373 0.302 0.562 ... 0.836 0.007}、{0.348 0.2936
0.541 ... 0.675 0.041}。
步骤3:设定训练轮次,输入破损数据集至车辆数据填补模型,使得车辆数据填补模型输出初始值对应的至少一个候选值,计算真实值(即步骤2中的{0.015}{0.054})与真实值对应的至少一个候选之间差距,通过调整权重参数,使得损失函数最小化,以完成模型训练。
步骤5:将车辆缺失数据集
输入训练好的车辆数据填补模型,得到缺失数据对
应的至少一个候选值。
步骤6:将所述每个缺失数据的至少一个候选值进行融合获得替换值;利用所述替
换值替换所述车辆缺失数据集中对应的缺失数据,得到填补后的数据集
,其中,填补后的
数据集
包括替换缺失数据后的车辆缺失数据集
,以及车辆完整数据集
。
需要说明的是,上述示例仅为针对车辆数据的缺失数据填补流程,可根据需求通过使用不同领域的属性数据中的完整数据集训练对应的缺失数据填补模型后,通过该缺失数据填补模型确定缺失数据集中每个缺失数据对应的至少一个候选值;将每个缺失数据的至少一个候选值进行融合获得替换值;并利用替换值替换所述缺失数据集中对应的缺失数据,将包含缺失数据的数据集填补为完整数据集,从而有利于上层属性数据分析算法对属性数据的分析。
例如,除了上述示例所提及智能汽车领域所产生的车辆数据之外,还可以是其他交通设备领域所产生的属性数据(如火车数据、飞机数据、轮船数据等),或者是计算机设备等在执行程序过程中产生的属性数据(如某一终端设备在执行某一程序过程中所产生的用户数据等)。此外,还可以是其他领域所产生的属性数据,本申请对此不作限定。
如图4所示,为本申请提供的一种缺失数据填补装置的结构示意图,该装置可以包括以下模块:
获取模块41,用于获取待处理的缺失数据集,所述缺失数据集为初始数据集中包缺失数据元组的集合,所述初始数据集包括在一时段内的多个不同时刻采集的多条数据元组,所述数据元组包含多维属性数据,所述缺失数据元组为包含缺失数据的数据元组;
确定模块42,用于确定所述缺失数据集中每个缺失数据对应的至少一个候选值;
融合模块43,用于将所述每个缺失数据的至少一个候选值进行融合获得替换值;
生成模块44,用于利用所述替换值替换所述缺失数据集中对应的缺失数据,得到填补后的数据集。
可选地,本申请实施例中,该装置的融合模块43具体用于至少一个候选值进行加权融合,以生成所述替换值。
可选地,本申请实施例中,该装置利用缺失数据填补模型实现的,所述缺失数据填补模型包括数据破损层、数据处理层、数据分析层;
所述数据破损层用于将所述缺失数据集中的缺失数据替换为设定值;
所述数据处理层用于确定所述缺失数据集中每个缺失数据对应的至少一个候选值;
所述数据分析层用于将所述每个缺失数据的至少一个候选值进行融合获得替换值。
可选地,本申请实施例中,该装置的确定模块42具体用于通过编码器生成每个缺失数据所在缺失数据元组对应的隐变量的后验分布,并对所述隐变量的后验分布进行至少一次采样,获取至少一个隐变量样本;并通过解码器解码所述至少一个隐变量样本,以生成所述每个缺失数据对应的至少一个候选值。
可选地,本申请实施例中,所述缺失数据填补模型是利用完整数据集训练得到的,所述完整数据集是所述初始数据集不包含缺失数据的完整数据元组集合,在训练过程中,所述数据破损层将所述完整数据集中的部分数据替换为设定值,以模拟缺失数据,模拟缺失数据的缺失模式与所述缺失数据集中的缺失数据的缺失模式一致。
可选地,本申请实施例中,该装置的确定模块42具体用于通过编码器生成每个缺
失数据所在缺失数据元组
对应隐变量
的后验分布
,并对所述后验分布
进行m次采样,获取m个隐变量样本
;
其中,
,
表示为缺失数据元组
对
应隐变量
的后验分布,
表示为编码器分布参数,m表示为采样m次,
表示为第i个缺失
数据元组
的第一个隐变量样本,
表示为第i个缺失数据元组
的第m个隐变量样本。
可选地,本申请实施例中,该装置的确定模块42具体用于通过解码器解码所述至
少一个隐变量样本,以生成包含缺失数据的缺失数据元组对应的m个候选数据元组
;从m个候选数据元组中确定每个缺失数据对应的至少一个候选值;
其中,
=
,
表示为对第
一个隐变量样本进行解码得到的缺失数据元组
对应的候选数据元组,
表示为对第m
个隐变量样本进行解码得到的缺失数据元组
对应的候选数据元组,
表示为m个隐变量样本送入解码器的计算函数。
图4所述的缺失数据填补装置可以执行图3所示实施例所述的缺失数据填补方法,其实现原理和技术效果不再赘述。对于上述实施例中的缺失数据填补装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例还提供了一种电子设备,如图5所示,该设备可以包括存储组件501及处理组件502;
该存储组件501存储一条或多条计算机程序指令,其中,一条或多条计算机程序指令供处理组件502调用执行,以实现图3所示的缺失数据填补方法。
当然,上述电子设备必然还可以包括其他部件,例如输入/输出接口、通信组件等。
输入/输出接口为处理组件和外围接口模块之间提供接口,上述外围接口模块可以是输出设备、输入设备等。通信组件被配置为便于电子设备和其他设备之间有线或无线方式的通信等。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被计算机执行时可以实现图3所示的缺失数据填补方法。该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
本申请实施例还提供了一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序被计算机执行时可以实现图3所示的缺失数据填补方法。
在这样的实施例中,计算机程序可以是从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被处理器执行时,执行本申请的系统中限定的各种功能。
需要说明的是,上述电子设备可以为物理设备或者云计算平台提供的弹性计算主机等。其可以实现成多个服务器或终端设备组成的分布式集群,也可以实现成单个服务器或单个终端设备。
前文相应实施例中涉及的处理组件可以包括一个或多个处理器来执行计算机指令,以完成上述的方法中的全部或部分步骤。当然处理组件也可以为一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
存储组件被配置为存储各种类型的数据以支持在终端的操作。存储组件可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRA至少一),电可擦除可编程只读存储器(EEPRO至少一),可擦除可编程只读存储器(EPRO至少一),可编程只读存储器(PRO至少一),只读存储器(RO至少一),磁存储器,快闪存储器,磁盘或光盘。
计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如RO至少一/RA至少一、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。