Page 103 - 《软件学报》2021年第10期
P. 103
王双成 等:基于贝叶斯网络的时间序列因果关系学习 3075
其中,N ijk [t]是充分统计因子,是在时间序列的转换数据集中 X i []t x i k []t 且 Π []t i j [ ]t 的情况数量,N ij [t]=
i
k 1 N ijk []t ; ijk [t]和 ij [t]是先验充分统计因子,可以依据经验和历史数据获得.我们采用最大似然估计方法进行
i r
因果关系的参数学习,多变量时间序列的因果关系学习算法如算法 1 所示.
算法 1. 多变量时间序列的因果关系学习算法.
输入:多变量时间序列数据集 D c [n,T];
输出:多变量时间序列的因果关系(包括结构和参数).
时间序列丢失数据的初始化、离散化和迭代修复
时序变量的排序
For i=1 to n
基于{x i [t]}(1≤t≤T)的转换数据集,通过局部贪婪打分-搜索发现 X i [t]的时滞父节点集
确定 X i [t]的时滞变量
End for
For i=1 to n
基于{x 1 [t],x 2 [t],...,x n [t]}(1≤t≤T)的转换数据集,通过局部贪婪打分-搜索发现 X i [t]的 3 种父节点集
依据最大似然估计方法进行 X i [t]的参数学习
End for
在多变量时间序列的因果关系学习算法中,运算的主要部分是确定时滞变量(单变量时间序列的因果关系
结构学习)和多变量时间序列的因果关系结构学习.在单变量时间序列的因果关系结构学习中,需要进行不超过
*
*
n(4s 6)次的 MDL 计算(我们限定父节点数量不超过 4),其中,s =max{s 1 ,s 2 ,…,s n };而在多变量时间序列的因果关
1
*
*
*
系结构学习中,最多需要进行 qn (qn * 1) 1 次的 MDL 计算,其中,q =max{q 1 ,q 2 ,…,q n },q i ≤s i (1≤i≤n).s 和 q *
2
2
是与 n 无关的量,因此,相对于 MDL 打分计算,多变量时间序列因果关系学习算法的时间复杂度是 O(n ).
2 时间序列的元因果关系学习
时间序列的元因果关系学习是因果关系学习的深化和拓展.时间序列的因果关系学习适合于低频常规时
间序列(也可以用于高频时间序列的局部或子列),而时间序列的元因果关系学习则主要针对高频大时间序列.
时间序列的元因果关系学习包括时间序列预处理、在时间序列段因果关系结构学习基础上的因果关系结构数
据集构建和变量选择,以及元因果关系的结构与参数学习这 3 个部分.
2.1 时间序列预处理
在时间序列预处理中,除丢失数据修复(如果需要突出效率,可以只采用滑动平均的方法来修复丢失的数
据)和离散化(适合于使用模式离散化方法)之外,还需要时间序列分段.如果时间序列中的数据是按照固定时间
跨度采集(时间均匀地采集),那么可选择确定的时间跨度来为时间序列分段;当时间序列中的数据不是按时间
均匀分布时,则可按数据量为时间序列分段;当然,也可以根据实际情况和需求为时间序列分段.时间序列段的
大小可以一致,也可以不一致.无论采用哪种方式分段,时间序列段的大小和数量应该能够有效地进行因果关系
和元因果关系学习.
假设将时间序列分为个段,用 X 1 ()m [],tX 2 ()m [ ],...,t X n ( )m []t 表示第 m 个时间序列段的排序后(同样采用变量删
除法来排序)非时滞变量,其中,T 1 ,T 2 ,…,T 1 是时间序列段的分点,T m1 +1≤t≤T m ,1≤m≤,T 0 =0,T =T, D d ()m [, ]n T
是对应的时 序数据集 , 那么 , D d ()m [ , , ] {n T q x 1 ()m [t v 1 1 q ],..., x 1 ( )m [t v 1 1 ], x 1 ( )m [ ],...,t x ()m [t v n n q ],..., x ( )m [t v 1 n ], x n ()m [ ]}t
n
n
t
(T m1 +max{q 1 ,q 2 ,…,q n }+1≤t≤T m )是 {x 1 ()m [ ],tx 2 ()m [ ],...,t x ( )m [ ]}(t T m 1 1≤ ≤ T m ) 的转换数据集.在时间序列预处
n
理、时间序列段的时序变量排序与转换数据集构建的基础上,同样采用打分-搜索方法进行时间序列段的因果
(m)
关系结构学习,用 G [t]表示学习得到的因果关系结构.接下来是因果关系结构数据集构建和因果关系变量选