本发明涉及数据处理技术领域,尤其涉及一种基于速度约束的多维时序数据修复方法及装置。
背景技术:
多维时序数据在人们的日常生活中十分常见,如各类机械上的传感器产生的数据,GPS的数据等等均为多维时序数据。然而在多维时序数据的产生、传输、接收、利用的生命周期中,可能会因为种种原因出现多样的错误,带来数据质量问题。如由于传感器电量不足或受到意外扰动,则在多维时序数据产生过程中,就会出现错误。而在传输过程中,可能也会因为网络延迟,周围噪声影响等造成数据的缺失和错误。这些数据质量问题会使得针对这些时序数据的分析产生具有偏差的结论。因此,如何对多维时序数据进行修复就变得十分重要。
现有技术中,利用基于平滑的方法,对多维时序数据进行修复,通过划分一定长度的时间窗格的方式,对时间窗格内的时序数据进行平滑处理。这类方法虽然效率高,但是修复的精确度却相对较低,并且由于方式比较简单,很多原本正确的数据也同样会被修改。
技术实现要素:
(一)要解决的技术问题
本发明的目的是提供一种基于速度约束的多维时序数据修复方法及装置,解决了现有技术中的修复方法的修复精确度低的技术问题。
(二)技术方案
为了解决上述技术问题,一方面,本发明提供一种基于速度约束的多维时序数据修复方法,包括:
计算多维时序数据的每个子序列内任意两个数据点间的速度,所述数据点间的速度表示两个数据点间的距离与时间差的比值;
基于每个子序列内任意两个数据点间的速度,构建速度约束方程;
根据所述速度约束方程,确定每个数据点的修复值,所述修复值为修复后的数据点的数据值。
进一步地,所述计算多维时序数据的每个子序列内任意两个数据点间的速度之前还包括:
将所述多维时序数据分成n个子序列;每个子序列包含所述多维时序数据中的多个相邻的数据点,每个子序列的起始数据点分别对应所述多维时序数据中的一个数据点,每个子序列的长度均为预设值,其中,n为所述时序数据的长度。
进一步地,所述两个数据点间的速度为:
其中,vij为所述时序数据中第i个数据点pi和第j个数据点pj间的速度,Lij为所述时序数据中第i个数据点pi和第j个数据点pj间的距离,pi=<ti,pi1,pi2,...,pil,...,pim>,pj=<tj,pj1,pj2,...,pjl,...,pjm>,m为所述时序数据的维度数,pil为第i个数据点pi的第l维数据值,pjl为第j个数据点pj的第l维数据值,tj为第j个数据点pj的时间戳,ti为第i个数据点pi的时间戳,wk为所述时序数据的第k个子序列Wk的长度,
进一步地,所述基于每个子序列内任意两个数据点间的速度,构建速度约束方程,具体包括:
以每个子序列内任意两个数据点间的速度为参考值,获取预设最大速度和预设最小速度;
根据所述预设最大速度和所述预设最小速度构建速度约束方程。
进一步地,所述速度约束方程为:
1≤k≤n,1≤i<j≤n,tj-ti≤wk
其中,vmax为所述预设最大速度,vmin为所述预设最小速度,psl为所述时序数据中第s个数据点ps的第l维数据值,ps=<ts,ps1,ps2,...,psl,...,psm>,p'sl为所述时序数据中修复后的第s个数据点p's的第l维数据值,p's=<ts,p's1,p's2,...,p'sl,...,p'sm>,pi为所述时序数据中第i个数据点,pi=<ti,pi1,pi2,...,pil,...,pim>,pj为所述时序数据中第j个数据点,pj=<tj,pj1,pj2,...,pjl,...,pjm>,Wk为所述时序数据的第k个子序列,n为所述时序数据的长度,m为所述时序数据的维度数,p′il为所述时序数据中修复后的第i个数据点p′i的第l维数据值,p′i=<ti,p′i1,p′i2,...,p′il,...,p′im>,p'jl为所述时序数据中修复后的第j个数据点p'j的第l维数据值,p′j=<tj,p'j1,p'j2,...,p'jl,...,p'jm>,tj为第j个数据点pj的时间戳,ti为第i个数据点pi的时间戳,wk为Wk的长度。
进一步地,所述根据所述速度约束方程,确定每个数据点的修复值,具体包括:
求所述速度约束方程的解,求出的解即为每个数据点的修复值。
另一方面,本发明提供一种基于速度约束的多维时序数据修复装置,包括:
计算模块,用于计算多维时序数据的每个子序列内任意两个数据点间的速度,所述数据点间的速度表示两个数据点间的距离与时间差的比值;
构建模块,用于基于每个子序列内任意两个数据点间的速度,构建速度约束方程;
修复模块,用于根据所述速度约束方程,确定每个数据点的修复值,所述修复值为修复后的数据点的数据值。
再一方面,本发明提供一种用于多维时序数据修复的电子设备,包括:
存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述的方法。
又一方面,本发明提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述的方法。
又一方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。
(三)有益效果
本发明提供的基于速度约束的多维时序数据修复方法及装置,通过计算子序列内任意两个数据点间的速度,并构建出基于任意两个数据点间的最大、最小速度的速度约束方程,根据速度约束方程,确定每个数据点的修复值,提高了修复效率和精确度。
附图说明
图1为依照本发明实施例的基于速度约束的多维时序数据修复方法示意图;
图2为依照本发明实施例的基于速度约束的多维时序数据修复装置示意图;
图3为本发明实施例提供的用于多维时序数据修复的电子设备的结构示意图。
具体实施方式
为了使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
图1为依照本发明实施例的基于速度约束的多维时序数据修复方法示意图,如图1所示,本发明提供一种基于速度约束的多维时序数据修复方法,包括:
步骤S10、计算多维时序数据的每个子序列内任意两个数据点间的速度,所述数据点间的速度表示两个数据点间的距离与时间差的比值;
步骤S20、基于每个子序列内任意两个数据点间的速度,构建速度约束方程;
步骤S30、根据所述速度约束方程,确定每个数据点的修复值,所述修复值为修复后的数据点的数据值。
进一步地,所述计算多维时序数据的每个子序列内任意两个数据点间的速度之前还包括:
将所述多维时序数据分成n个子序列;每个子序列包含所述多维时序数据中的多个相邻的数据点,每个子序列的起始数据点分别对应所述多维时序数据中的一个数据点,每个子序列的长度均为预设值,其中,n为所述时序数据的长度。
进一步地,所述两个数据点间的速度为:
其中,vij为所述时序数据中第i个数据点pi和第j个数据点pj间的速度,Lij为所述时序数据中第i个数据点pi和第j个数据点pj间的距离,pi=<ti,pi1,pi2,...,pil,...,pim>,pj=<tj,pj1,pj2,...,pjl,...,pjm>,m为所述时序数据的维度数,pil为第i个数据点pi的第l维数据值,pjl为第j个数据点pj的第l维数据值,tj为第j个数据点pj的时间戳,ti为第i个数据点pi的时间戳,wk为所述时序数据的第k个子序列Wk的长度,
进一步地,所述基于每个子序列内任意两个数据点间的速度,构建速度约束方程,具体包括:
以每个子序列内任意两个数据点间的速度为参考值,获取预设最大速度和预设最小速度;
根据所述预设最大速度和所述预设最小速度构建速度约束方程。
进一步地,所述速度约束方程为:
1≤k≤n,1≤i<j≤n,tj-ti≤wk
其中,vmax为所述预设最大速度,vmin为所述预设最小速度,psl为所述时序数据中第s个数据点ps的第l维数据值,ps=<ts,ps1,ps2,...,psl,...,psm>,p'sl为所述时序数据中修复后的第s个数据点p's的第l维数据值,p's=<ts,p's1,p's2,...,p'sl,...,p'sm>,pi为所述时序数据中第i个数据点,pi=<ti,pi1,pi2,...,pil,...,pim>,pj为所述时序数据中第j个数据点,pj=<tj,pj1,pj2,...,pjl,...,pjm>,Wk为所述时序数据的第k个子序列,n为所述时序数据的长度,m为所述时序数据的维度数,p′il为所述时序数据中修复后的第i个数据点p′i的第l维数据值,p′i=<ti,p′i1,p′i2,...,p′il,...,p′im>,p'jl为所述时序数据中修复后的第j个数据点p'j的第l维数据值,p′j=<tj,p'j1,p'j2,...,p'jl,...,p'jm>,tj为第j个数据点pj的时间戳,ti为第i个数据点pi的时间戳,wk为Wk的长度。
进一步地,所述根据所述速度约束方程,确定每个数据点的修复值,具体包括:
求所述速度约束方程的解,求出的解即为每个数据点的修复值。
具体的,首先,获取待修复的多维时序数据,并对多维时序数据进行归一化处理,以便后续数据的计算。
然后,计算多维时序数据的每个子序列内任意两个数据点间的速度,多维时序数据包含多个数据点,数据点间的速度表示两个数据点间的距离与时间差的比值。两个数据点的时间差是指两个数据点的时间戳的差。
经过归一化处理后的多维时序数据用p表示,p={p1,p2,...,pi,...,pn},多维时序数据p的长度为n,维度数为m,pi为时序数据中第i个数据点,pj为时序数据中第j个数据点,i、j为小于n的正整数,pi=<ti,pi1,pi2,...,pil,...,pim>,pj=<tj,pj1,pj2,...,pjl,...,pjm>,每个数据点pi包含该数据点的时间戳ti以及m维度数据值,pil为第i个数据点pi的第l维数据值,pjl为第j个数据点pj的第l维数据值,tj为第j个数据点pj的时间戳,ti为第i个数据点pi的时间戳。
计算多维时序数据的每个子序列内任意两个数据点间的速度之前,还包括将所述多维时序数据分成n个子序列;每个子序列均为一个多维时序数据,每个子序列包含所述多维时序数据中的多个相邻的数据点,每个子序列的起始数据点分别对应所述多维时序数据中的一个数据点,每个子序列的长度均为预设值,其中,n为所述时序数据的长度。以多维时序数据p中的每个数据点pi为起始点,进行子序列的划分。则共可划分出n个子序列,分别为W1,W2,...,Wk,...,Wn,每个子序列长度均为预设定值,分别为w1,w2,...,wk,...,wn,wk为所述时序数据的第k个子序列Wk的长度,设某个子序列Wi中的第一个数据点(起始点)为pi,则该子序列将包含所有在pi之后的与pi的时间戳的差小于子序列长度wi数据点,即实际应用中,每个子序列长度的具体值可以根据实际需要进行设置,此处不做限定。
计算多维时序数据的每个子序列内任意两个数据点间的速度的具体公式如下:
其中,vij为所述时序数据中第i个数据点pi和第j个数据点pj间的速度,Lij为所述时序数据中第i个数据点pi和第j个数据点pj间的距离,pi=<ti,pi1,pi2,...,pil,...,pim>,pj=<tj,pj1,pj2,...,pjl,...,pjm>,m为所述时序数据的维度数,pil为第i个数据点pi的第l维数据值,pjl为第j个数据点pj的第l维数据值,tj为第j个数据点pj的时间戳,ti为第i个数据点pi的时间戳,wk为所述时序数据的第k个子序列Wk的长度,
要注意的是,上述公式中的Lij表示两个数据点间的欧式距离,实际应用中并不局限于使用欧氏距离,可以使用其他距离公式进行计算。例如,还可以通过曼哈顿距离来计算第i个数据点pi和第j个数据点pj间的距离,计算pi和pj间的曼哈顿距离的公式为:
然后,基于每个子序列内任意两个数据点间的速度,构建速度约束方程。
以每个子序列内任意两个数据点间的速度参考值,获取预设最大速度和预设最小速度。
经过计算,获得了每个子序列内任意两个数据点间的速度,以每个子序列内任意两个数据点间的速度为参考值,设置数据点间的预设最大速度vmax和预设最小速度vmin。实际应用中,预设最大速度vmax和预设最小速度vmin的具体值可以根据实际需要进行设置,此处不做限定。
根据所述预设最大速度和所述预设最小速度构建速度约束方程。
速度约束方程具体如下:
1≤k≤n,1≤i<j≤n,tj-ti≤wk
其中,vmax为所述预设最大速度,vmin为所述预设最小速度,psl为所述时序数据中第s个数据点ps的第l维数据值,ps=<ts,ps1,ps2,...,psl,...,psm>,p'sl为所述时序数据中修复后的第s个数据点p's的第l维数据值,p's=<ts,p's1,p's2,...,p'sl,...,p'sm>,pi为所述时序数据中第i个数据点,pi=<ti,pi1,pi2,...,pil,...,pim>,pj为所述时序数据中第j个数据点,pj=<tj,pj1,pj2,...,pjl,...,pjm>,Wk为所述时序数据的第k个子序列,n为所述时序数据的长度,m为所述时序数据的维度数,p′il为所述时序数据中修复后的第i个数据点p′i的第l维数据值,p′i=<ti,p′i1,p′i2,...,p′il,...,p′im>,p'jl为所述时序数据中修复后的第j个数据点p'j的第l维数据值,p′j=<tj,p'j1,p'j2,...,p'jl,...,p'jm>,tj为第j个数据点pj的时间戳,ti为第i个数据点pi的时间戳,wk为Wk的长度。
p's为时序数据中修复后的第s个数据点,p's=<ts,p's1,p's2,...,p'sl,...,p'sm>,其中数据点的时间戳保持不变,每一个维度的数据值在修复后均有可能发生变化,表示修复该数据点产生的修复代价。具体可分为两步:
对每个子序列Wk内的数据点建立速度约束,即子序列Wk内的数据点应该满足:
对整个多维时序数据p的所有子序列,以最小修复代价为目标,构建速度约束方程为:
1≤k≤n,1≤i<j≤n,tj-ti≤wk
最后,根据所述速度约束方程,确定每个数据点的修复值。即,求所述速度约束方程的解,求出的解即为每个数据点的修复值。本发明实施例利用现有的二次规划(QP)工具,对构建的速度约束方程进行求解,求出的解即为各数据点的修复值。
下面以某GPS传感器获取到的2维时序数据为例,对上述实施例中的方法进一步说明。
经过归一化处理后的长度为5的2维时序数据用p表示,p={p1,p2,p3,p4,p5}={<1,1,1>,<2,4,5>,<3,8,8><5,17,20><6,18,19>},如第二个数据点p2=<2,4,5>,2代表时间戳,4表示该数据点的第1维数据值,5表示该数据点的第2维数据值,即归一化后的经度为4,纬度为5。子序列W的长度记为w,在本例子中所有子序列等长,长度为w=2s。
根据本实施例中的速度计算公式,计算出每两点间的速度:v12=5m/s,v13=4.95m/s,v23=5m/s,而在第三个子序列中,有v34=7.5m/s。
基于每个子序列内任意两个数据点间的速度,获取预设最大速度为5m/s,预设最小速度为0m/s,即,vmax=5m/s,vmin=0m/s。
对每个子序列Wk内的数据点建立速度约束,即子序列Wk内的数据点应该满足:
对于第三个子序列W3={p3,p4}而言,修复后的数据点应该满足
对整个多维时序数据p的所有子序列,以最小修复代价为目标,构建速度约束方程,如下:
所有子序列最小修复求解。利用现有的二次规划(QP)工具,对构建的速度约束方程进行求解,求出的解即为各数据点的修复值。最终修复结果为p′={p1′,p′2,…,p′5}={<1,1,1>,<2,4,5>,<3,8,8><5,14,16><6,18,19>},即只有第四个数据点有所变动。
本发明提供的基于速度约束的多维时序数据修复方法,通过计算子序列内任意两个数据点间的速度,并构建出基于任意两个数据点间的最大、最小速度的速度约束方程,根据速度约束方程,确定每个数据点的修复值,提高了修复效率和精确度。
实施例2:
图2为依照本发明实施例的基于速度约束的多维时序数据修复装置示意图,如图2所示,本发明实施例提供一种基于速度约束的多维时序数据修复装置,用于完成上述实施例中所述的方法,具体包括计算模块10、构建模块20和修复模块30,其中,
计算模块10用于计算多维时序数据的每个子序列内任意两个数据点间的速度,所述数据点间的速度表示两个数据点间的距离与时间差的比值;
构建模块20用于基于每个子序列内任意两个数据点间的速度,构建速度约束方程;
修复模块30用于根据所述速度约束方程,确定每个数据点的修复值,所述修复值为修复后的数据点的数据值。
本发明实施例提供一种基于速度约束的多维时序数据修复装置,用于完成上述实施例中所述的方法,通过本实施例提供的修复装置完成上述实施例中所述的方法的具体步骤与上述实施例相同,此处不再赘述。
本发明提供的基于速度约束的多维时序数据修复装置,通过计算子序列内任意两个数据点间的速度,并构建出基于任意两个数据点间的最大、最小速度的速度约束方程,根据速度约束方程,确定每个数据点的修复值,提高了修复效率和精确度。
实施例3:
图3为本发明实施例提供的用于多维时序数据修复的电子设备的结构示意图,如图3所示,所述设备包括:处理器801、存储器802和总线803;
其中,处理器801和存储器802通过所述总线803完成相互间的通信;
处理器801用于调用存储器802中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:
计算多维时序数据的每个子序列内任意两个数据点间的速度,所述数据点间的速度表示两个数据点间的距离与时间差的比值;
基于每个子序列内任意两个数据点间的速度,构建速度约束方程;
根据所述速度约束方程,确定每个数据点的修复值,所述修复值为修复后的数据点的数据值。
实施例4:
本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:
计算多维时序数据的每个子序列内任意两个数据点间的速度,所述数据点间的速度表示两个数据点间的距离与时间差的比值;
基于每个子序列内任意两个数据点间的速度,构建速度约束方程;
根据所述速度约束方程,确定每个数据点的修复值,所述修复值为修复后的数据点的数据值。
实施例5:
本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:
计算多维时序数据的每个子序列内任意两个数据点间的速度,所述数据点间的速度表示两个数据点间的距离与时间差的比值;
基于每个子序列内任意两个数据点间的速度,构建速度约束方程;
根据所述速度约束方程,确定每个数据点的修复值,所述修复值为修复后的数据点的数据值。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置及设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。