10. May 15, 2015
DMKD Sides By
MAO 10
基于 ARMA 模型的序列匹配方法
ARMA 模型(特 是其中的别 AR 模型)是 序方法中最基时
本的、 用最广的 序模型。早在实际应 时 1927 年, G. U.
Yule 就提出了 AR 模型,此后, AR 模型逐步 展发 为
ARMA 模型、多维 ARMA 模型。 ARMA 通常被广泛用于
。由于预测 ARMA 模型是一个信息的凝聚器,可将系 的统
特性与系 状 的所有信息凝聚在其中,因而它也可以用统 态
于 序列的匹配。时间
1 . ARMA 模型
于平 、正 、零均 的 序 ,对 稳 态 值 时
若 X 在 t 刻的取 不 与其前时 值 仅 n 步的各个值
有 ,而且 与前关 还 m 步的各个干 有扰 关
( n , m=1 , 2 ,…), 按多元 性回 的思想,可则 线 归
得到最一般的 ARMA ( n , m )模型:
其中 。
}1...210{ −== ntxX t ,,,,
nttt xxx −−− ...,,, 21
mttt −−− ααα ...,,, 21
tjtj
m
j
iti
n
i
t xx ααθϕ +−= −
=
−
=
∑∑ 11
),0(~ 2
at NID δα
11. May 15, 2015
DMKD Sides By
MAO 11
基于 ARMA 模型的序列匹配方法
( 续 )
2 . AR 模型
AR ( n )模型是 ARMA ( n , m )模型的一个特例。在
上面 ARMA ( n , m )模型表 中,当 ,有达 时
其中 。由于此 模型中没有滑 平均部分,所时 动
以称为 n 自回 模型,阶 归 记为 AR ( n )。
3 . MA 模型
MA ( m )模型是 ARMA ( n , m )模型的另一个特例。
在上面 ARMA ( n , m )模型表 中,当 ,有达 时
其中 。由于模型中没有自回 部分,所以称归 为 m
滑 平均(阶 动 Moving Average )模型,记为 MA ( m )
。
0=jθ
titi
n
i
t xx αϕ += −
=
∑1
),0(~ 2
at NID δα
0=iϕ
jtj
m
j
ttx −
=
∑−= αθα
1
),0(~ 2
at NID δα
12. May 15, 2015
DMKD Sides By
MAO 12
建立 AR 模型
建立 AR 模型的最常用方法是最小二乘法。具体方法如下:
于对 AR ( n )模型,有 ,其中 ,
即可以用以下 性方程 表示:线 组
,
,
…… ,
。
或者写成如下矩 形式:阵
,
其中
根据多元 性回 理 ,参数矩 的最小二乘估 : 。线 归 论 阵 计为
tntnttt xxxx αϕϕϕ ++++= −−− ...2211 ),0(~ 2
at NID δα
111211 ... +−+ ++++= nnnnn xxxx αϕϕϕ
,
222112 ... +++ ++++= nnnnn xxxx αϕϕϕ
NnNnNNN xxxx αϕϕϕ ++++= −−− ...2211
。
αϕ += xy
T
Nn xxxy ]...[ 2n1 ++=
,
T
n ]...[ 21 ϕϕϕϕ =
,
T
nn ]...[ N21 αααα ++=
,
=
−−−
+
−
nNNN
nn
nn
xxx
xxx
xxx
x
...
......
...
...
21
21
11
yxxx TT 1
)( −
=ϕ
ϕ
13. May 15, 2015
DMKD Sides By
MAO 13
造判 函数构 别
根据上面的模型,我 可以 得待 序列 的参数们 获 测
模型 ,同 我 也可以得到序列数据 中的其他序列样 们 库 Yi 的参数模型
。
和 都是 n 向量,故均可维 视为 n 空 上的点,从而序列的相维 间
似性 就问题 归结为 n 空维 间 Rn
中的距离 。因此,我 下面 介问题 们 简单 绍
几 基于距离的判 函数。种 别
1 . Euclide
2 .残差偏移距 判离 别
其中 是待 序列的 方差矩 ,检 协 阵 N 表示待 序列的 度。检 长
3 . Mahalanobis 距 判离 别
其中 是参考序列的 方差矩 。协 阵
4 . Mann 距 判离 别
其中, 待 序列的 方差矩 , 待 序的方差。为 检 协 阵 为 测时
,
。
,
,
}1...,,2,1,0{ −== ntxX t
Xϕ iYϕ
Xϕ Yϕ
)()(),(2
YX
T
YXYXED ϕϕϕϕϕϕ −−=
)()(),(2
YXX
T
YXYX rND ϕϕϕϕϕϕα −−=
)()(),( 2
2
YXY
T
YX
Y
YXMh r
N
D ϕϕϕϕ
δ
ϕϕ −−=
)()(),( 2
2
XYX
T
XY
X
XYMn r
N
D ϕϕϕϕ
δ
ϕϕ −−=
Xr
Yr
Xr 2
Xδ
34. May 15, 2015
DMKD Sides By
MAO 34
AprioriAll 算法
表 6-2 顾客序列表示例
1. AprioriAll 算法描述
算法 6-1 AprioriAll 算法
输入:大项集阶段转换后的序列数据库 DT
输出:所有最长序列
( 1 ) L1={large 1-sequences} ; // 大项集阶段得到的结果
( 2 ) FOR ( k=2 ; Lk-1 ≠ ∅ ; k++ ) DO BEGIN
( 3 ) Ck=aprioriALL_generate(Lk-1) ; // Ck 是从 Lk-1 中产生的新的候选者
( 4 ) FOR each customer-sequence c in DT DO
// 对于在数据库中的每一个顾客序列 c
( 5 ) Sum the count of all candidates in Ck that are contained in c ;
// 被包含于 c 中 Ck 内的所有候选者计数
( 6 ) Lk = Candidates in Ck with minimum support
// Lk = Ck 中满足最小支持度的候选者
( 7 ) END ;
( 8 ) Answer = Maximal Sequences in ∪kLk ;
由于我们在关联规则一章对 Apriori 算法进行了详尽地介绍,因此上面给出的算
法流程很容易理解。它的关键仍然是侯选集的产生,具体候选者的产生如下:
40. May 15, 2015
DMKD Sides By
MAO 40
AprioriSome 算法
AprioriSome 算法可以看作是 AprioriAll 算法的改 ,具体 程分进 过 为两
个 段:阶
前推 段:阶 此 段用于找出指定 度的所有大序列。阶 长
回溯 段:阶 此 段用于 找其他 度的所有大序列。阶 查 长
算法 6-3 AprioriSome 算法
输入:大项集阶段转换后的序列数据库 DT
输出:所有最长序列
// Forward Phase — 前推阶段;
( 1 ) L1 = {large 1-sequences} ; // 大项目集阶段的结果;
( 2 ) C1 = L1 ;
( 3 ) last = 1 ; // 最后计数的 Clast
( 4 ) FOR ( k =2 ; Ck-1 ≠ ∅ and Llast ≠∅ ; k++ ) DO BEGIN
( 5 ) IF ( Lk-1 know ) THEN Ck = New candidates generated from Lk-1 ;
//Ck =产生于 Lk-1 新的候选集
( 6 ) ELSE Ck = New candidates generated from Ck-1 ; // Ck =产生于 Ck-1 新的候选集
( 7 ) IF ( k =next ( last )) THEN BEGIN
( 9 ) FOR each customer-sequence c in the database DO // 对于在数据库中的每一个客户序
列 c
( 10 ) Sum the count of all candidates in Ck that are contained in c ;
// 求包含在 c 中的 Ck 的候选者的数目之和
( 11 ) Lk = Candidates in Ck with minimum support ; // Lk =在 Ck 中满足最小支持度的候选
者
( 12 ) last = k ;
( 13 ) END ;
41. May 15, 2015
DMKD Sides By
MAO 41
AprioriSome 算法 ( 续 )
表 6-2 顾客序列表示例
// Backward Phase — 回溯阶段;
( 15 ) FOR ( k - - ; k > = 1 ; k - - ) DO
( 16 ) IF ( Lk not found in forward phase ) THEN BEGIN // Lk 在前推阶段没有确定的情况
( 17 ) Delete all sequences in Ck contained in Some Li , i > k ;
// 删除所有在 Ck 中包含在 Lk 中的序列, i>k
( 18 ) FOR each customer-sequence c in DT DO // 对于在 DT 中的每一个客户序列 c
( 19 ) Sum the count of all candidates in Ck that are contained in c ;
// 对在 Ck 中包含在 c 中的所有的候选这的计数
( 20 ) Lk = Candidates in Ck with minimum support // Lk = 在 Ck 中满足最小支持度的候选者
( 21 ) END ;
( 22 ) ELSE Delete all sequences in Lk contained in Some Li , i > k ; // Lk 已知
( 23 ) Answer = ∪k Lk ; // 从 k 到 m 求 Lk 的并集
在前推阶段( forward phase )中,我们只对特定长度的序列进行计数。比如,前推阶段我们对长度
为 1 、 2 、 4 和 6 的序列计数(计算支持度),而长度为 3 和 5 的序列则在回溯阶段中计数。 next
函数以上次遍历的序列长度作为输入,返回下次遍历中需要计数的序列长度。
算法 6-4 next ( k: integer )
IF ( hitk < 0.666 ) THEN return k + 1 ;
ELSEIF ( hit k < 0.75 ) THEN return k + 2 ;
ELSEIF ( hit k < 0.80 ) THEN return k + 3 ;
ELSEIF ( hit k < 0.85 ) THEN return k + 4 ;
ELSE THEN return k + 5 ;
hitk 被定义为大 k- 序列( large k-sequence )和候选 k- 序列( candidate k-sequence )
的比率,即 |Lk|/|Ck| 。这个函数的功能是确定对哪些序列进行计数,在对非最大序列计数
时间的浪费和计算扩展小候选序列之间作出权衡。
47. May 15, 2015
DMKD Sides By
MAO 47
GSP 算法
GSP 算法主要包括三个步 :骤
① 扫描序列数据库,得到长度为 1 的序列模式 L1 ,作为初始的种子集;
② 根据长度为 i 的种子集 Li 通过连接操作和剪切操作生成长度为 i+1 的
候选序列模式 Ci+1 ;然后扫描序列数据库,计算每个候选序列模式的支持
数,产生长度为 i+1 的序列模式 Li+1 ,并将 Li+1 作为新的种子集;
③ 重复第二步,直到没有新的序列模式或新的候选序列模式产生为止。
其中, 生候 序列模式主要分 步:产 选 两
连接阶段:如果去掉序列模式 S1 的第一个项目与去掉序列模式 S2 的最
后一个项目所得到的序列相同,则可以将 S1 于 S2 进行连接,即将 S2 的
最后一个项目添加到 S1 中。
剪切阶段:若某候选序列模式的某个子序列不是序列模式,则此候选序
列模式不可能是序列模式,将它从候选序列模式中删除。
候 序列模式的支持度 算按照如下方法 行:选 计 进
对于给定的候选序列模式集合 C ,扫描序列数据库 DT ,对于其中的每一
条序列 d ,找出集合 C 中被 d 所包含的所有候选序列模式,并增加其支
持度计数。
48. May 15, 2015
DMKD Sides By
MAO 48
GSP 算法
算法 6-5 GSP 算法
输入:大项集阶段转换后的序列数据库 DT 。
输出:最大序列
( 1 ) L1 = {large 1-sequences} ; // 大项集阶段得到的结果
( 2 ) FOR ( k = 2 ; Lk-1 ≠ ∅ ; k++ ) DO BEGIN
( 3 ) Ck = GSPgenerate(Lk-1) ;
( 4 ) FOR each customer-sequence c in the database DT DO
( 5 ) Increment the count of all candidates in Ck that are
contained in c ;
( 6 ) Lk = Candidates in Ck with minimum support ;
( 7 ) END ;
( 8 ) Answer = Maximal Sequences in ∪kLk ;