基于全局信息的时间序列数据中异常数据点的修复方法技术

技术编号:19341480 阅读:30 留言:0更新日期:2018-11-07 13:39
本发明专利技术公开了基于全局信息的时间序列数据中异常数据点的修复方法,通过获取的原始时间序列数据以及异常数据点位置,采用最近的k个非异常数据点的均值对异常数据点进行初始化即初步修复;将相似的子序列数据聚到同一个类簇中;查找相似的已修复子序列数据;时间序列数据中的相似子序列数据作为一种全局信息,最后使用多个相似子序列数据提供的均值的加权累加值作为修复后异常数据点的值,以降低单个相似子序列数据的误差带来的影响。通过这些步骤,从而实现了对时间序列数据中突发异常数据点的精确修复。

Repair method of outliers in time series data based on global information

The invention discloses a method for repairing abnormal data points in time series data based on global information. By acquiring the original time series data and the location of abnormal data points, the abnormal data points are initially initialized by using the mean of the nearest K non-abnormal data points, and the similar sub-sequence data are aggregated into the same data. In each cluster, similar repaired subsequence data is searched; similar subsequence data in time series data is used as a global information, and the weighted cumulative value of the mean provided by multiple similar subsequence data is used as the value of the repaired outlier data points to reduce the shadow caused by the error of single similar subsequence data. Ringing. Through these steps, we can realize the precise repair of abrupt outliers in time series data.

【技术实现步骤摘要】
基于全局信息的时间序列数据中异常数据点的修复方法
本专利技术属于数据清洗领域,更为具体地讲,涉及一种基于全局信息的时间序列数据中异常数据点的修复方法。
技术介绍
随着各种传感器的广泛使用,日常生活中越来越多的时间序列数据被采集和应用,例如气温数据和GPS轨迹数据。时间序列数据挖掘作为当今的一个热门研究课题,具有重要价值。然而,脏数据也广泛存在于时间序列数据中,给时间序列数据的挖掘与分析带来了巨大的影响。毫无疑问,通过修复时间序列数据中的异常数据点可以提高数据质量,能够有效改善数据挖掘的结果,具有重要意义。其中,修复时间序列数据中的突发异常数据点,是数据清洗中的一项重要内容。由于传感器错误和其他原因,导致时间序列数据中通常存在不精确或错误的数据点。目前,时间序列数据清洗领域有两种主流方法:基于平滑和基于约束的方法。基于平滑的方法通常用于消除序列中的异常数据点,如简单移动平均(SMA)和指数加权移动平均(EWMA)。然而,这类方法可能造成过度修复问题,即原本正确的数据点被修改错误。此外,最近一些基于约束的新方法被提出了,但是现有的基于约束的方法并不能找到满足约束条件的所有有效修复值中最有可能的结果。异常数据点的真实值难以精确估计,使得时间序列数据清洗成为极具挑战性的问题。综上,目前在修复时间序列数据中的突发异常数据点时,存在过度修复或难以精确修复异常数据点的问题。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种基于全局信息的时间序列数据中异常数据点的修复方法,实现对时间序列数据中突发异常数据点的精确修复。为实现上述专利技术目的,本专利技术一种基于全局信息的时间序列数据中异常数据点的修复方法,包括以下步骤:S1:获取原始时间序列数据以及异常数据点位置;S2:对于每个异常数据点,使用k近邻算法从原始时间序列数据中,选取k个非异常数据点,使用它们的均值作为异常数据点的值,对异常数据点进行初始化;S3:将所述原始时间序列数据依次划分成大小相同的多个子序列数据,然后对多个子序列数据进行聚类,将各子序列数据划分到不同的类簇中;S4:依次遍历所述的多个子序列数据,如果遍历到的子序列数据中不存在异常数据点,则不需要进行修复,直接遍历下一个子序列数据,如果遍历到的子序列数据中存在异常数据点,则该子序列数据为待修复子序列数据;对于待修复子序列数据,其所在类簇已遍历过的子序列数据为已修复子序列数据,并在其中查找与待修复子序列数据相似的已修复子序列数据;S5:使用DTW算法计算待修复子序列数据与相似的已修复子序列数据之间的距离和归整路径,然后计算各相似的已修复子序列数据的权重以及归整路径中与待修复子序列数据中异常数据点对应的相似的已修复子序列数据中数据点的均值,将这些获取的数据点的均值,加权累加后得到的值作为修复后异常数据点的值,然后返回步骤S4,遍历下一个子序列数据。本专利技术的目的是这样实现的:本专利技术通过获取的原始时间序列数据以及异常数据点位置,采用最近的k个非异常数据点的均值对异常数据点进行初始化,能够对异常数据点进行初步修复,从而降低在后续相似子序列数据查找过程中异常数据点对子序列数据相似度计算造成的影响;将相似的子序列数据聚到同一个类簇中,在接下来的相似子序列数据查找过程中可以仅比较与待修复子序列数据在同一个类簇中的已修复子序列数据,从而减少比较次数,达到降低时间开销的目的;查找相似的已修复子序列数据可以避免不够相似的已修复子序列数据被选择和足够相似的已修复子序列数据未被选择的情况;时间序列数据中的相似子序列数据作为一种全局信息,充分反应了时间序列数据的整体特性,本专利技术利用相似子序列数据进行修复能够得到最可能的修复值,而使用多个相似子序列数据提供的估计值的加权累加值可以降低单个相似子序列数据的误差带来的影响。通过这些步骤,从而实现了对时间序列数据中突发异常数据点的精确修复。附图说明图1是本专利技术基于全局信息的时间序列数据中异常数据点的修复方法流程图。具体实施方式下面结合附图对本专利技术的具体实施方式进行描述,以便本领域的技术人员更好地理解本专利技术。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本专利技术的主要内容时,这些描述在这里将被忽略。实施例如图1所示,本专利技术为了解决目前在修复时间序列数据中的突发异常数据点时,存在过度修复或难以精确修复异常数据点的问题。提出了一种基于全局信息的时间序列数据中异常数据点的修复方法,其特征在于,包括以下步骤:S101:获取原始时间序列数据以及异常数据点位置;获取原始时间序列数据x={<t1,x1>,<t2,x2>,...,<tI,xI>}以及异常数据点位置,ti表示第i个数据点的观测时间,xi表示第i个数据点的观测值。表1是本实施例中的原始时间序列数据和异常数据点位置。表1S102:初始化异常数据点:对于每个异常数据点,使用k近邻算法从原始时间序列数据中,选取k个非异常数据点,使用它们的均值作为异常数据点的值,对异常数据点进行初始化。本实施例中,设置k=2,根据k近邻算法,表1中异常数据点<16:51,1.4>的2个非异常数据点为<15:51,1.3>、<17:51,1.16>,它们的均值为(1.3+1.16)/2,即1.23,将其作为异常数据点的值,即进行初始化后异常数据点为<16:51,1.23>。S103:序列划分与聚类:按窗口大小w将整个原始时间序列数据依次划分成多个子序列数据,本实施例中设置w=3,将整个原始时间序列数据划分为8个子序列数据。表2是本实施例中的原始时间序列数据划分结果。编号子序列数据1<1.15,1.24,1.32>2<1.3,1.25,1.17>3<1.17,1.25,1.32>4<1.29,1.25,1.18>5<1.17,1.27,1.33>6<1.3,1.23,1.16>7<1.17,1.25,1.33>8<1.3,1.25,1.15>表2使用K-DBA算法对子序列数据进行聚类,各子序列数据划分到不同的类簇中。K-DBA算法是一种使用DTW作为距离度量和使用DBA(DTWbarycenteraveraging)作为质心计算方法的K-means算法。使用聚类算法可以将相似的子序列数据聚到同一个类簇中,在接下来的与待修复子序列数据相似的已修复子序列数据查找过程中可以仅比较与待修复子序列数据在同一个类簇中的已修复子序列数据,从而减少比较次数(序列之间的dtw距离计算次数),达到降低时间开销的目的。本实施例中设置K=2,将子序列数据分为两个簇。表3是本实施例中的序列数据聚类结果。簇子序列数据编号11,3,5,722,4,6,8表3S104:查找相似子序列数据:依次遍历所述的多个子序列数据,如果遍历到的子序列数据中不存在异常数据点,则不需要进行修复,直接遍历下一个子序列数据,如果遍历到的子序列数据中存在异常数据本文档来自技高网...

【技术保护点】
1.基于全局信息的时间序列数据中异常数据点的修复方法,其特征在于,包括以下步骤:S1:获取原始时间序列数据以及异常数据点位置;S2:对于每个异常数据点,使用k近邻算法从原始时间序列数据中,选取k个非异常数据点,使用它们的均值作为异常数据点的值,对异常数据点进行初始化;S3:将所述原始时间序列数据依次划分成大小相同的多个子序列数据,然后对多个子序列数据进行聚类,将各子序列数据划分到不同的类簇中;S4:依次遍历所述的多个子序列数据,如果遍历到的子序列数据中不存在异常数据点,则不需要进行修复,直接遍历下一个子序列数据,如果遍历到的子序列数据中存在异常数据点,则该子序列数据为待修复子序列数据;对于待修复子序列数据,其所在类簇已遍历过的子序列数据为已修复子序列数据,并在其中查找与待修复子序列数据相似的已修复子序列数据;S5:使用DTW算法计算待修复子序列数据与相似的已修复子序列数据之间的距离和归整路径,然后计算各相似的已修复子序列数据的权重以及归整路径中与待修复子序列数据中异常数据点对应的相似的已修复子序列数据中数据点的均值,将这些获取的数据点的均值,加权累加后得到的值作为修复后异常数据点的值,然后返回步骤S4,遍历下一个子序列数据。...

【技术特征摘要】
1.基于全局信息的时间序列数据中异常数据点的修复方法,其特征在于,包括以下步骤:S1:获取原始时间序列数据以及异常数据点位置;S2:对于每个异常数据点,使用k近邻算法从原始时间序列数据中,选取k个非异常数据点,使用它们的均值作为异常数据点的值,对异常数据点进行初始化;S3:将所述原始时间序列数据依次划分成大小相同的多个子序列数据,然后对多个子序列数据进行聚类,将各子序列数据划分到不同的类簇中;S4:依次遍历所述的多个子序列数据,如果遍历到的子序列数据中不存在异常数据点,则不需要进行修复,直接遍历下一个子序列数据,如果遍历到的子序列数据中存在异常数据点,则该子序列数据为待修复子序列数据;对于待修复子序列数据,其所在类簇已遍历过的子序列数据为已修复子序列数据,并在其中查找与待修复子序列数据相似的已修复子序列数据;S5:使用DTW算法计算待修复子序列数据与相似的已修复子序列数据之间的距离和归整路径,然后计算各相似的已修复子序列数据的权重以及归整路径中与待修复子序列数据中异常数据点对应的相似的已修复子序列数据中数据点的均值,将这些获取的数据点的均值,加权累加后得到的值作为修复后异常数据点的值,然后返回步骤S4,遍历下一个子序列数据。2.根据权利要求1所述的基于全局信息的时间序列数据中异常数据点的修复方法,其特征在于,步骤S3中,所述对子对多个子序列数据进行聚类采用的是K-DBA算法。3.根据权利要求1所述的基于全局信息的时间序列数据中异常数据点的修复方法,其特征在于,步骤S4中,已修复子序列数据与待修复子序列数据相似需满足的条...

【专利技术属性】
技术研发人员:王晓玲刘小捷宋光旋
申请(专利权)人:华东师范大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1