多元时间序列中 关联规则的发现 史忠植 董泽坤...

28
多多多多多多多 多多多多多多多 多多多 多多多 中中中中中中中中中中中中 22/6/10

description

多元时间序列中 关联规则的发现 史忠植 董泽坤 中国科学院计算技术研究所 2014/10/22. 多元时间序列的关联规则分析. 关联规则: 设 是项的集合。任务相关的数据 D 是数据库事务的集合,其中每个事务 T 是项的集合, 。每个事务有一个标识符,称为 TID 。 设 A 是一个项集,事务 T 包含 A 当且仅当 。关联规则是形如 的蕴含式,其中 , , , 。. 关联规则的算法 OptimizedApriori. 优点:只读取一次数据库 - PowerPoint PPT Presentation

Transcript of 多元时间序列中 关联规则的发现 史忠植 董泽坤...

Page 1: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

多元时间序列中关联规则的发现

史忠植 董泽坤中国科学院计算技术研究所

23/4/20

Page 2: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

多元时间序列的关联规则分析

关联规则:设 是项的集合。任务相关的数据 D 是数据库事务的集合,其中每个事务 T 是项的集合, 。每个事务有一个标识符,称为 TID 。设 A 是一个项集,事务 T 包含 A 当且仅当 。关联规则是形如 的蕴含式,其中 , ,

, 。

},...,,{ 21 nIIII

IT

TAIT IA

BAIB

Page 3: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

关联规则的算法 OptimizedApriori

优点:只读取一次数据库1. OptimizedApriori 是在 ArioriTid 的基础上,将数据结构由

<TID,{IID}> 变换为 <{IID},{TID}> ,从而迅速减少了系统的I/O 操作。

2. 在构造候选 1- 项集时,每一个项( IID )携带了它在数据库中出现的位置记录集合( {TID} ),使得以后的操作可以脱离数据库。

3. 构造 k- 项集时,新的项目集合( {IID} )由两个 k-1 项集的项目集合求并集得到,记录号集合( {TID} )由两个 k-1 项集的记录号集合求交集得到。

缺点:消耗大量的内存大型数据库操作时会受到处理器内存容量的限制,数据可能无法一次装入。

Page 4: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

多元股票时间序列的关联规则( 1 )

数据预处理1. 数值离散化

s1=3,4,3,2,4,2,0,3,4,4

s2=2,3,2,3,3,4,3,1,1,4

s3=0,3,4,1,0,1,3,3,3,4

0( 深跌 )

1( 跌)

2( 平 )

3( 涨 )

4( 大涨 )

0 1 2 3 4 5 6 7 8 9

股票 S1 股票 S2 股票S3

Page 5: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

多元股票时间序列的关联规则( 1 )

TID ITEMS

0 s1.3,s2.2,s3.0

1 s1.4,s2.3,s3.3

2 s1.3,s2.2,s3.4

3 s1.2,s2.3,s3.1

4 s1.4,s2.3,s3.0

5 s1.2,s2.4,s3.1

6 s1.0,s2.3,s3.3

7 s1.3,s2.1,s3.3

8 s1.4,s2.1,s3.3

9 s1.4,s2.4,s3.4

2. 序列合并多元时间序列合并集:设时间序列的集合S={s1, s2,…, su} , Ti 是在时刻 i 对 S的观察值集合, Ti={s1(i),s2(i),…su(i)}(1≤i≤n) ,多元时间序列合并集 D 定义为: D={T1,T2,…,Tn} 。 D 中每组观察值作为一个事务,各分配一个识别号TID 。

↑ ↑ ↑

s1 s2 s3

Page 6: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

多元股票时间序列的关联规则( 2 )

规则挖掘 设:最小支持度 20 %,最小信任度 50%

规则:s1.3 s2.2: 股票 1 涨股票 2 平 (20%,66.7%):s1.4 s2.3: 股票 1 大涨 股票 2 涨 (20%,50%);s2.1 s3.3: 股票 2 跌 股票 3 涨 (20%,100%);

测试集中国证券市场 1997 - 2001 共五年间近 500 只股票的收盘价

时间序列集(以下同)

Page 7: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

多元股票时间序列的关联规则( 3 )

测试结果 中纺机和二纺机属于典型的纺织机电企业,而陕长岭属于家电企业,他们之间为什么会出现相同的下跌走势呢?而且,用肉眼观察实际走势图,它们之间的形态也有很大差距,这个现象如何解释?在经过仔细分析后,我们发现:陕长岭中很大的一项主营业务是生产纺织机电。这项业务和纺织企业有着密切的联系,这几年间国家对纺织机电的政策也有大的调整。所以,这几只股票的下跌走势比较相同是有内在联系的。这种关系很难从实际走势图中识别,但是关联分析做到了这一点。 中纺机↓ 1 ,陕长岭↓ 1 二纺机↓

1 (21.6%,84.1%)

Page 8: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

多元时间序列的跨事务关联规则分析( 1 )

“跨事务”特性的特点: 强调的是出现在不同事务中各项目之间的关联关系,应用到时间序列中就是不同时刻各序列的数据特征之间的关系,如: A 公司的股票在第一天上涨, B 公司的股票在第二天下跌,那么,C 公司的股票会在第三天上涨。( s%,c% )

这种规则包含了时间特性,规则的前件可以用来作为后件的预测条件,它们的实际使用价值是很明显的。

Page 9: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

多元时间序列的跨事务关联规则分析( 2 )

多元时间序列的跨事务关联规则: 设∑={ e1(0),…,e1(w-1),e2(0),…, e2(w- 1) , …,eu(0),…, eu(w-1) } 是事件的集合,这些事件是多元时间序列合并集 D 中各序列观察值的属性,w是 D 的滑动时间窗口。以时刻 s (1≤s≤n-w+1) 为 D 的参考时间基准点,如果时刻s+x (0≤x≤w-1)此事件出现,则标记 ei(x) 属于 Ts 。每一个 ei(x) 分配一个识别号 IID 。多元时间序列的跨事务关联规则是形如 XY 的蕴涵式,并且满足以下条件:1.X∑,Y∑;2.ei(0)∈X, 1≤i≤u;

3.ej(q)∈X, 1≤j≤u,((i=j)∧(1≤q<w-1))∨((i≠j)∧(0≤q<w-1));

4.ei(p)∈Y, 1≤i≤u, max(q) <p≤w-1;

5.X∩Y=

Page 10: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

多元时间序列的跨事务关联规则分析( 3 )

和传统关联规则算法比较,跨事务关联规则算法要更复杂:①要处理的数据超过算法能承受的范围后,频繁项集的数目将变得巨大而无法处理; 在跨事务分析中,每一个基本项将扩展为 w (滑动时间窗口)个。假设有 1000 个基本项,在传统关联规则分析中,会产生至多( 999+1 ) *999 /2 =499500 个候选二项集;而在跨事务分析中,会产生 (1000*w-1)*(1000*w-1)/2 个候选二项集,这个数字以 w2 的倍数增长。如果w = 3 ,则会有 4498500 (增加了 9倍)个二项候选集;更严重的是,在构造候选三项集时,会有更多的增长。随着数据的增加,系统的内存将会枯竭,效率明显下降。②候选集数目的增加导致更频繁的数据库扫描动作。 为统计每一个候选集的频繁支持度计数值,需要通过搜索数据库中每一条记录来确定候选集的所有项是否出现。很明显,数据库的频繁访问会占用很多运行时间。

Page 11: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

跨事务关联规则的算法 ES-Apriori ( 1 )

为提高多元时间序列的跨事务关联规则分析效率,本文提出 了 一 个扩展的 分步 Apriori 算 法 : ES-Apriori ,此算法从两个方面提高了系统的性能。 1.仅扫描一次数据库 ES-Apriori 算法使用了 OptimizedApriori 算法的优点,将所有一项集的数据库信息读入内存,其后所有 k- 项集的产生均依靠 k-1- 项集提供的数据库信息,从而不必多次搜索数据库,降低了系统的 I/O代价。

 2.减少了单次调入内存的数据量 ES-Apriori 的所有大项集保留了各项的数据库信息,从而减少了数据库扫描次数,但是它的代价是使用大量内存。所以,如何合理分配内存,是 ES-Apriori方法的另一重点。通过分析数据的特征,本文利用时间序列的跨事务关联规则性质,提出了“分而治之”的策略,使每一步需要扫描的空间大幅缩减,从而降低内存的开销。

Page 12: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

跨事务关联规则的算法 ES-Apriori ( 2 )

时间序列的跨事务关联规则性质:规则都可以在各序列的参考时间基准点项 ei(0) 的基础上产生。 此性质可以由时间序列的跨事务关联规则定义中的条件 2(频繁项集的 X 子集必定存在相对地址值为 0 的项)推出。这一性质为 ES-Apriori 的分步策略提供了理论依据。 假设有 2 个基本项 A 、 B ,滑动时间窗口= 3 ,它的扩展1- 项集为 A0 、 A1 、 A2 、 B0 、 B1 、 B2 。考察 6- 项集{ A0,A1,A2,B0,B1,B2 },它包含的规则有且仅有:① A0, B0-> A1,A2, B1,B2;②A0, A1,B0, B1->A2, B2 。而传统关联规则可能产生的规则有 个。625

6

4

6

3

6

2

6

1

6 CCCCC

Page 13: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

跨事务关联规则的算法 ES-Apriori ( 3 )

在计算这 2条规则的置信度时,只需要搜索由A0 构造的频繁项集空间 , 并不需要搜索由B0 构造的频繁项集空间(不考虑连接时产生的重复项集)。因为这个 6- 项 集 的 符 合 时 间序列的跨事务关联规则条件的所有 X 子集只有{ A0, B0 }、{ A0, A1,B0, B1 },这两项都是在 A0 的基础上构造产生的。同理, 5 项集 { B0, A1,A2,B1, B2 } 的 X 子 集{ B0 }、{ B0, A1, B1 }只须搜索由 B0构造的频繁项集空间。

Page 14: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

跨事务关联规则的算法 ES-Apriori ( 4 )

从上面的分析得出,挖掘所有规则可以分成 u 步运行:每步只构造包含 ei(0)|( 1≤i≤u) 的频繁项集,挖掘相应的的关联规则。这样,一次调入内存的数据可降低为全部调入的 1/u ,当有大量数据项参与运算时,此方法也能顺利运行。ES-Apriori 算法分割了频繁项集空间,降低了一次调入内存的数据量,从而缓解了因数据爆炸而耗尽内存的问题。为能够快速便捷的读取跨事务关联规则 X子集的支持度计数值,我们设计了一颗动态树来保存频繁项集。用每一个节点表示一个项 ei(x) ,由树的根节点出发所形成的数枝上所有的节点就代表一个频繁 k- 项集,而树枝的终点记载了这个频繁项集的支持度计数值。

Page 15: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

跨事务关联规则的算法 ES-Apriori ( 5 ) :构造动态树

以基本项 A 和 B ,滑动时间窗口为 3 的数据库为例,构造一颗 6层(最长的关联规则包括 6 项)共有 32 个节点的动态树。 首先,建立节点 1 ( A0 ),作为第一层节点;第二项 A0A1 有两项,需要新建第二层链表,作为子节点直接添加到节点 2;因为第三项 A0A2 与 A0A1 同属于第二层,作为A0A1 的兄弟节点,加入到第二层链表中;同理, A0B0 、 A0B1 、 A0B2都属于第二层,都加入到第二层链表中。由于第二层节点的父节点只有节点 1 ,所以第二层只需要一个链表。从第三层开始,每一个新节点可能属于不同的父节点,所以他们会被添加到不同的各自父节点的子节点链表中。例如,节点 11 (代表频繁项集 A0A2B0 )的父节点是节点 3 (代表频繁项集 A0A2 ),所以被加入到节点 3 的子节点链表中。以此类推,所有的节点都被添加到动态树中。

Page 16: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

跨事务关联规则的算法 ES-Apriori ( 6 ) : 查询动态树

当分解频繁项集为 X 子集和 Y 子集时,需要读取 X 子集的支持度计数值,从而计算 X Y 的支持度。这一搜索过程可以在构造的动态树中快速实现。例如,我们需要得到频繁项 A0A2B0B1B2 中 X 子集 A0B0B1 的支持度计数值,只需要循着节点 1 ( A0 )转到第二层链表,由节点 2开始顺序搜索节点找到节点 4 ( B0),转入节点 4 的子节点链表,找到节点 14( B1 ),读出它的支持度计数值。在整个搜索过程中,只需要经过 5 个节点,这样的速度要比搜索链表高出若干倍,也要比 Hash表技术快。在设计中,将已经计算过信任度的频繁项集节点直接销毁,能够减少访问空间,进一步加快搜索速度。

Page 17: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

ES-Apriori 算法流程图

项名称映射 , 交易号映射

开始

载入数据

数据全部载入 ?N

扫描数据库,获得 1- 项集( L1 )

L1 项的滑动窗口值是否为 0 ?

构造 2- 项集

构造 k- 项集

构造动态树

输出规则

是否还有 L1 ?

结束

Y

N

N

Y

Page 18: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

跨事务关联规则的算法 ES-Apriori: 算法性能比较

ES-Apriori 与 E-Apriori 算法的性能对比

由图中可知,当项数小于 20k时, E-Apriori 和 ES-Apriori 的执行效率都很高。但是随着数据的增加, E-Apriori 的内存使用量将急速增加,导致运算时间骤然变长;而 ES-Apriori 无论在内存上还是在时间上都呈现平稳增加的态势。在试验中,当总的项数大于 30k后, E-Apriori 会耗尽计算机内存而无法继续运行;而 ES-Apriori却可以顺利运行。试验结论证明,分析较大数据量的多元时间序列的跨事务关联规则时, ES-Apriori 算法在时间 /空间性能上要优于 E-Apriori 算法。

Page 19: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

多元股票序列的跨事务关联规则分析 :数据预处理

1. 离散化: 2. 序列合并

s1=3,4,3,2,4,2,0,3,4,4

s2=2,3,2,3,3,4,3,1,1,4

s3=0,3,4,1,0,1,3,3,3,4

3. 数据投影 合并集 D 将沿着时间方向,把在同一时间窗口内的数据投影到同

一事务内。假设时间窗口值为 3 ,则 TID=0 的事务为: T={s1.3(0),s2.2(0),s3.0(0),s1.4(1),s2.3(1),s3.3(1),s1.3(2),s2.2(2),s3.4(2)}

0( 深跌 )

1( 跌)

2( 平 )

3( 涨 )

4( 大涨 )

0 1 2 3 4 5 6 7 8 9

股票 S1 股票 S2 股票S3

TID ITEMS

0 s1.3,s2.2,s3.0

1 s1.4,s2.3,s3.3

2 s1.3,s2.2,s3.4

3 s1.2,s2.3,s3.1

4 s1.4,s2.3,s3.0

5 s1.2,s2.4,s3.1

6 s1.0,s2.3,s3.3

7 s1.3,s2.1,s3.3

8 s1.4,s2.1,s3.3

9 s1.4,s2.4,s3.4↑ ↑ ↑

s1 s2 s3

Page 20: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

多元股票序列的跨事务关联规则分析 :实验结果

我们定义了两个区间,分别代表不同的事件。其中,涨幅(收盘价-昨收盘价)/(昨收盘价)大于 1% 的数值定义为“涨”事件,涨幅小于 -1%的数值定义为“跌”事件。

中国凤凰跌 (0),仪征化纤跌 (1),金杯汽车跌 (1)-金杯汽车涨 (2)(1.7%,83%)

Page 21: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

多元时间序列的频繁片断模式关联规则分析

分析多元时间序列中采样值之间的关联规则,必须预先将这些数值映射到一定的区间,以降低数据之间的差异程度。这样才能在一个较小的空间,分析有限的事件之间的关联规则。否则,数据的多值性将导致产生太多的候选项而引发数据爆炸。另一种克服数据多值性的方法是,将时间序列的片段映射为一个与其相似的片段,将这些数值数据转化为“模式”,并用一个有代表性的片段代替序列中与其相似的片段。这样,数值数据的空间就可以降低到关联规则分析可以接受的范围。我们将使用聚类的方法搜索时间序列中的频繁“模式”,并用这些模式代替时间序列中与其相似的片段,近而在经过模式匹配的多元时间序列中挖掘关联规则。

Page 22: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

时间序列的相似性度量- DTW 距离

DTW : Dynamic Time Warping 动态时间归整(或动态时间弯折),这项技术已经在语音识别上使用了很多年,在 1994 年,由Berndt 和 Clifford首先应用到数据挖掘中。

不同序列的相似性可以通过计算它们之间的欧几里得距离来衡量,但是这种方法对序列在时间轴上相近数值的提前或推后出现会产生较大的误差。在用欧几里得距离和 DTW 距离分别计算四个序列的相似度,然后再对它们聚类,结果如下:

四个时间序列的聚类:欧几里得距离 DTW 距离

Page 23: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

动态时间规整 DTW (1)

假设我们有两个时间序列 Q和 C, 长度分别是 n和 m ,

为了用 DTW排列这两个序列,我们构造一个( n,m )的矩阵,第 (i,j)单元记录两个点 qi和 ci 之间的欧几里得距离。一条弯折的路径W ,是由若干个彼此相连的矩阵单元构成,这条路经描述了 Q 和 C 之间的一种映射。设第 k个单元定义为 wk=(i,j)k, 则

这条弯折的路径服从许多限制:1.        边界条件 且这条路径必须由第一个单元经过矩阵到达最后一个单元。2.        连续性 设 ,那么, 。这个条件限制了允许的每一个弯折步必须彼此相邻。(包括对角线单元)3.        单调性 设 ,那么, 。 这个条件限制了W 中的点在时间上的不能回退。

Kk wwwww ,...,,...,, 21 nmKnm ),max(

)1,1(1 w ),( mnwK

),(),,( ''

1 bawbaw kk 1,1 '' bbaa

),(),,( ''

1 bawbaw kk 0,0 '' bbaa

Page 24: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

动态时间规整 DTW (2)

满足上述条件的路径数的是指数级的,然而,我们只关心整个路径中最短的、消费最少的一条路经

KwCQDTW kk k 1min),(

图中的两个序列之间的 DTW 距离,可以通过动态规划的方法找到一条最短的路经。这里,每个序列采 12 个点,点-点距离构成( 12,12 )的矩阵。首先初始化矩阵的每一个单元的局部距离 ,通过下面的循环,累计距离 就等于当前单元的局部距离 和相邻单元中的最短累计距离相加。这样,计算到最后一个点的时侯,一条最短路径就得了出来。

ji cqjid ),(),( ji ),( jid

)}1,(),,1(),1,1(min{),(),( jijijijidji

Page 25: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

频繁片段模式关联规则分析:挖掘频繁片段模式

为了能够对时间序列中不同片段的模式进行关联规则分析,需要对时间序列中相近的片段序列(子序列)分类。在这里我们不采用由相关领域专家提供的序列模板作为分类标准,而是直接从序列中“提炼”。这一过程需要用到有关聚类( clustering )的方法。在时间序列中,定义一个滑动时间窗口,窗口的大小 w等于模式的长度 pattern_length 。将滑动时间窗口应用到序列 s 中,沿着时间的方向,每个窗口内的子序列定义一个标识,然后对于所有的 n-w+1个子序列聚类。在这里,我们只需要搜集频繁出现的子序列(或片段),而个别现象将不再讨论(关联分析只关心频繁项之间的规则),这样可以降低聚类的难度。 算法需要提供两个重要参数:频繁支持度 support、最短匹配距离min_size 。我们需要用 support来决定出现多少次的相似模式才是频繁的,满足什么样的 min_size 的序列才是相似的。由于数值型数据的不确定性,所有的子序列都需要经过正则化处理,将数据统一到同样的标准内分析。正则化处理过程可以通过缩放序列,使它适合固定的窗口。

Page 26: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

频繁片段模式关联规则分析:序列合并

假设通过模式识别,发现3种频繁序列模式,分别定义为模式 A 、模式 B 、模式C ,用这三个模式匹配序列 1和序列 2 。如果定义滑动时间窗口为 3 (这里只是一种适于表达意义的某种概念上的窗口),则我们将起始点是 T 的窗口内所有的频繁模式映射到时刻 T 的事务中,映射后的数据携带了序列名、模式名和时间窗口中的相对位置。比如图中时刻 T 的事务为{序列 1. 模式 A(0) ,序列 1. 模式 B(1) ,序列 1.模式 C(2) , 序 列 2. 模式A(0) ,序列 2. 模式 B(1) ,序列 2.模式 C(2) }。

Page 27: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

频繁片段模式关联规则分析:频繁片段模板

经过 1阶差分处理的 20日移动平均线中 5 个连续观察值的子序列。这些序列经过正则化处理后,观察值最大为 5 ,最小为 0 。在聚类过程中,最小DTW 距离为 1.5 。如果每个片断的相似片段数超过总片段数的 2 %,则认为它是频繁的。

Page 28: 多元时间序列中 关联规则的发现 史忠植   董泽坤 中国科学院计算技术研究所 2014/10/22

频繁片段模式关联规则分析:实验结果

宏盛科技第 0天是模式 11 青海三普第 13天是模式 2 ( 0.5%,83.3% )