本发明涉及数据流挖掘技术领域,具体涉及一种基于小波衰减概要树的时间序列数据流聚类方法。特别适用于智慧商业、智慧金融应用中用户和资源数量庞大,通过云计算、电子标签等进行多维度时间序列数据流存储并进行压缩与聚类。
技术背景
随着物联网技术、云计算、移动互联技术、电子标签技术等的飞跃发展,基于零售业宏观环境科技化需求的日益增长,数据流挖掘技术已经成为降低运营成本,提高运作效率的重要手段。然而,由于智慧零售中会连续不断产生大量随时间演变的序列型数据,构成包含用户、商品、交易等信息的时间序列数据流。上述数据流的海量、异构、多维、动态等特性造成信息处理困难,聚类等大数据挖掘效率受到很大的影响。同时,智慧零售企业信息化系统中的数据变化是动态的,更新速度快、数据量大、种类繁多,要把所有的实时动态变化数据全部以数据原型永久保存不仅对存储介质、存储技术、存储形式有很高的要求,而且也不符合实际的要求。因此,需要探索高效的数据流压缩技术来解决“维数灾难”问题,并采用数据流聚类方法实现“智慧零售”的目标。
聚类是分析这类时间序列数据流的一种有力方法。但数据流长度无限、随时间演变和大数据量的特点,使得传统的聚类方法无法直接应用。同时,动态地维护数据流的概要结构是数据流挖掘等处理工作的基础,而离散小波变换是一种应用得较多的数据流概要构造方法。虽然目前主流的小波变换可以完整地重构出原始时间序列,但是没有达到实现数据的压缩以及减少存储空间的目的。而且,在智慧商业数据流应用场景,数据的影响是随时间衰减(time-decaying)的。因此,在数据流的处理中应充分考虑这种衰减特性,反映到数据流的概要结构的构造中,应体现在两方面:一是要求所构造的概要结构能反映数据的衰减程度,不应将久远的数据和最近的数据同等重要地反映到概要结构中;二是利用数据流的这种特点,可以用更精简的概要信息来近似数据流。因此,要从根本上解决上述问题,实现海量动态数据流的挖掘,就需要利用数据流的衰减特性,应用小波变换和聚类方法。
技术实现要素:
为了克服目前已有方法在存储和挖掘具有动态性、非线性、高维性、复杂性、冗余性等多种特征的时间序列数据流的不足,本发明提供一种能反映数据流衰减特性的小波概要结构和高效的数据流知识挖掘的基于小波衰减概要树的时间序列数据流聚类方法。
本发明解决其技术问题所采用的技术方案是:
一种基于小波衰减概要树的时间序列数据流聚类方法,包括以下步骤:
步骤1,构造基于小波变换的树状衰减概要;
(11)压缩数据节点阈值过滤。假设时间序列是稳定的,将时间序列中不断到来的数据作为第1层,在相同的时间内到来的数据序列中平均由n个数据组成,则这n个数据组成一个数据节点,第1层的数据节点数有
(12)数据预处理。对实时时间序列进行噪声处理,主要是对数据序列进行空缺值处理。假设数据序列的属性个数为m,如果空缺属性个数
(13)压缩处理。将第1层中每n个数据组成的子序列di进行压缩,形成上一层即第2层中的一个数据节点pi,则di中的重要的概要信息就保存在pi中。同样的方法,随着第1层数据的不断增加,则第2层上合并的数据节点也必然增加,此时从时隔最远的n个数据节点开始进行合并,形成第3层上的1个数据节点。以此类推,数据节点就会不断向上合并,最后就构造成一棵能够存储小波系数的误差树。本发明利用数据流的衰减特性来对数据流进行压缩,建立一个比整个数据流的数据规模小得多的概要数据结构来保存数据流的主要特征。
(14)小波系数的筛选。本发明按照绝对值大的小波系数对重构时间序列作用也大,以及误差树中离根部越近的小波系数对重构时间序列的作用也越大的筛选原则,运用误差平方和sse:
设时间序列d=(p1,p2,…,pi,…pm),其中pi表示第i个数据节点,总共有m个数据节点。对于任意i=1,2,…,m的取值,数据节点pi的相对重构误差都满足ewi≤ε,且时间序列的基于衰减函数的相对重构误差ew≤ε。
设对子序列d,d=(x0,x1,…,xn-1),提取得到的数据节点p用在sse误差度量下的haar小波表示,子序列d的最重要r个小波系数是由φ=(w0,w1,…,wr-1)给出,且p的相对重构误差为
对序列d进行dwt分解,设n个小波系数为(w0,w1,…,wn-1),相应的r个最重要的小波系数γ=(w0,w1,…,wr-1),(v0,v1,…,vn-1)是其r个小波系数对应的正交基向量,根据parseval定理,
步骤2,基于小波衰减概要树的时间序列数据流聚类;
(21)基于小波降维的时间序列相似特征提取
时间序列数据流的变化趋势可以根据流之间的相似关系来预测,而经过小波变换后的子序列能表达原数据流的整体信息,因此本发明构建基于小波降维的时间序列相似特征提取方法来判断不同的相似关系。
可以根据时间序列之间的相似关系来发现数据流变化趋势,而基于小波变换后的子序列可以完整表达原时间序列的信息,因此提出基于小波降维的时间序列相似特征提取方法来判断不同的相似关系。本发明提出的时间序列聚类就是通过研究各个子序列之间的相似度,根据相似度的大小进行合理的数据流聚类,保证同类之间子序列的距离越小越好,不同类之间子序列的距离越大越好。然后,通过研究子序列之间的相似特征,改进k-means方法从而实现时间序列数据流的聚类。
具体时间序列相似特征提取的主要思想:对于时间序列{x1,x2,…,xm},计算相互之间的相似度
对于时间序列x1,x2,得到∑x1,i,∑x2,i,∑x1,ix2,i,∑x1,i2,∑x2,i2的信息,就可以计算出两条时间序列之间的相关系数
由于:
又因为:
通过∑x1,i,∑x2,i,∑x1,ix2,i,∑x1,i2,∑x2,i2的信息,来求出
(22)基于相似特征的聚类判定
本发明对传统的k-means聚类算法进行了改进,提出了新的时间序列聚类算法。主要的思想是:首先,任意选择一个时间序列xi为一个类的中心,接着根据距离最远的原则选择任意的k-1个时间序列作为类中心。然后根据簇内子序列之间的距离越小越好,簇之间的距离越大越好原则,将其余的时间序列逐一的归并到合适的类中。划分完后随机选择一个距离某个簇中心最远的点作为参与调整的新中心,进行再次聚类,并分别计算和比较将时间序列分为k个簇时,k+1个簇时的聚类效果,根据计算的结果调整k的大小,以此下去直至聚类k簇的质量达到最优。
与本发明一种基于小波衰减概要树的时间序列数据流聚类方法相关的定义如下:
定义1:树状衰减函数。对时间序列d,d=(x0,x1,…,xn-1)为从起始到当前时刻的n个数据,则其相应的衰减函数β应满足:对i1,i2∈[0,n-1],若i1<i2,则β(i1)≤β(i2)。
定义2:基于树状衰减函数的时间序列相对重构误差。d为时间序列,d'为sse误差度量下,经过haar小波变换重构的时间序列,则定义
时间序列进行误差控制的目的是:对于给定的非负阈值ε,整个时间序列的相对重构误差e,使其满足e≤ε。
定义3:(相似度)对时间序列x1=[x1,1,x1,2,…,x1,n]和x2=[x2,1,x2,2,…,x2,n]
其中
定义4:设x1,x2是两个时间序列,若x1和x2之间的相关系数
本发明的技术构思为:针对已有方法在时间序列数据流的高维度压缩、实时性处理、数据流挖掘上的不足,本发明首先研究时间序列的特点,分析哪些小波系数对重构时间序列的重要程度,然后将时间序列衰减特性引入小波概要的构造中,提出了一种基于小波变换的多维时间序列树状衰减概要构造方法,着重分析了在误差平方和重构误差度量下的误差控制,通过保留r<n个最重要的小波系数就能重构出原始序列的一个较好的近似,减缓了“维数灾难”带来的影响,实现了构造概要结构和对时间序列的近似表示,方便了后期对时间序列的存储和挖掘等处理。在此基础上,基于该概要结构快速提取数据流的相似特征,并计算与聚类中心之间的近似距离,实现了一种适合多维度时间序列数据流的k-means聚类方法,解决了传统聚类无法直接应用在长度无限、随时间演变和大数据量的数据流上。
本发明的有益效果在于:有效提升在高维、分布范围较大的流数据集上的存储与处理效率,并且实现了内存限制条件下流上数据挖掘的实时性与高质量要求,在智慧商业、智慧金融领域具有良好的实际应用价值。
附图说明
图1是本发明方法中基于小波变换的树状衰减概要具体构造流程图。
图2是本发明方法中基于小波变换的树状衰减概要构建示例图。
具体实施方式
下面结合附图对本发明作进一步描述。
一种基于小波衰减概要树的时间序列数据流聚类方法,包括以下步骤:
步骤1,参照图1,基于小波变换的树状衰减概要具体构造,包括以下步骤:
(11)压缩数据节点阈值过滤。假设时间序列是稳定的,将时间序列中不断到来的数据作为第1层,在相同的时间内到来的数据序列中平均由n个数据组成,则这n个数据组成一个数据节点,第1层的数据节点数有
(12)数据预处理。对实时时间序列进行噪声处理,主要是对数据序列进行空缺值处理。假设数据序列的属性个数为m,如果空缺属性个数
(13)压缩处理。将第1层中每n个数据组成的子序列di进行压缩,形成上一层即第2层中的一个数据节点pi,则di中的重要的概要信息就保存在pi中。同样的方法,随着第1层数据的不断增加,则第2层上合并的数据节点也必然增加,此时从时隔最远的n个数据节点开始进行合并,形成第3层上的1个数据节点。以此类推,数据节点就会不断向上合并,最后就构造成一棵能够存储小波系数的误差树。
具体基于小波变换的树状衰减概要结构参照图2中的误差树形式来表示。在图2中的树状衰减概要形成中,树中的节点wi(i=0,1,…)与小波系数相互对应,叶子节点xi(i=0,1,…)和原始数据相对应。在误差树t和t中的内节点wk中,令:leavesk代表以wk为根节点的子树的所有叶子节点集合,pathk为误差树t中从wk到根的路径上全部的非零系数的集合,r_leavesk代表以wk为根节点的右子树上的所有叶子节点集合,l_leavesk代表以wk为根节点的左子树上的所有叶子节点集合。对k=1,2,…,n-1,w0是全部数据的均值,设rk是r_leavesk中数据的均值,lk是l_leavesk中数据的均值,则
(14)小波系数的筛选。本发明按照绝对值大的小波系数对重构时间序列作用也大,以及误差树中离根部越近的小波系数对重构时间序列的作用也越大的筛选原则,运用误差平方和(sumofsquarederror)sse:
本发明规定将经过小波变换压缩后的各个数据节点的概要信息表示成
步骤2,基于小波衰减概要树的时间序列数据流聚类;
(21)基于小波降维的时间序列相似特征提取;
数据流相似特征提取的主要思想:对于时间序列{x1,x2,…,xm},计算相互之间的相似度
输入:特征流序列x0,相似流序列的集合{x1,x2,…,xm}。
输出:处理后流序列的集合。
foreachxi∈{x1,x2,…,xm}do
记作:
else记作:
记录
记录
return经处理后的流序列}
上述算法是循环对与特征流之间呈现正、负相似关系的每个时间序列进行预处理,重复执行m次。
(22)基于相似特征的聚类判定;
本文对传统的k-means聚类算法进行了改进,提出了新的时间序列聚类算法。该算法的主要思想为:
(221)对多个总长度为m的时间序列,分别将其划分成m个等长的子序列,接着对这m个子序列应用基于小波变换的树状衰减概要的数据压缩方法进行降维处理。
(222)对压缩后的时间序列进行相似特征提取。
(223)对处理后的时间序列应用新聚类算法进行聚类分析。
(224)当下一个时间段的多个时间序列到达时,循环重复上述的处理过程,但是时间序列的变化是与时间的改变有着密切的关系,是随时间逐渐改变的,所以相邻两次的聚类结果可能存在一定的相似性,结果不会发生太大的改变。因此每次需要决策聚类结果的时候,简单的操作就是在相邻一次的聚类结果的前提下,再迭代几次该算法便可获得最终的聚类结果。
计算xi与每个簇中心间的距离,根据距离最近的原则将其归簇;
计算每个簇的均值,确定新中心,更新c0,并随机选出一个最大距离的序列作为参与调整的新中心;
ifgk-1>gk,getk-1,elsegetk;
循环直至算出kopt;
进行k-means算法,直至c不再发生变化,输出结果;
end
在上述算法的执行过程中,本发明使用目标函数
k-means算法的一个特点是必须事先指定k个聚类中心,但是本发明提出的新聚类算法克服了这个缺点。选取初始的