计算机系统应用  2018, Vol. 27 Issue (12): 75-82   PDF    
实时演进数据序列集的内在模式提取与行为预测
艾锐峰1, 欧阳军1, 程杰2, 周凯2, 孙云鹏2     
1. 解放军63850部队 总体所, 白城 137001;
2. 解放军63850部队 水文装备试验站, 烟台 264100
摘要:复杂系统数据序列集未来行为的预测是一个难点, 利用数据挖掘实现预测是有潜力的技术途径. 针对包含多元时间序列和非时间序列的实时演进数据集, 整合序列分割、聚类、模式在线匹配等处理流程, 提出了一种主题发现与联合决策相结合的预测方法. 在整个方法构建中, 将拟构造的主题发现式预测和联合决策预测融合进前期的序列分割与聚类中, 采用多时间粒度、多跨度对序列进行对应分层与分割, 聚合形成各层的标准模式集. 再以标准模式集, 依照预测策略, 反向搜索具有高稳定性延展行为的复合模式作为主题模式集, 从而实现基于在线模式匹配的行为预测. 最后, 采用分布式并行计算的架构实现整个处理算法. 理论推导和实验数据分析证明, 相比传统的时间序列预测方法准确度得到提高.
关键词: 多元时间序列    时间粒度    聚类    主题发现    融合预测    
Intrinsic Mode Extraction and Behavior Prediction for Real-Time Evolution Data Set
AI Rui-Feng1, OUYANG Jun1, CHENG Jie2, ZHOU Kai2, SUN Yun-Peng2     
1. General Planning Institute, No. 63850 Troops of PLA, Baicheng 137001, China;
2. Hydrologic Equipment Testing Station, No. 63850 Troops of PLA, Yantai 264100, China
Foundation item: Technological Research Project of Former General Equipment Department (SYJS98170342)
Abstract: Prediction of future behavior of complex set of data sets is a difficult task. Data mining is a potential technical way. For the real-time evolutionary data sets containing multiple time series and non time sequence, a method of integrating the sequence segmentation, clustering, and pattern matching is proposed, which combines the theme discovery and joint decision. In the whole method construction, the topic discovery prediction and joint decision prediction are fused into the early sequence segmentation and clustering. The sequences are stratified and segmented for forming standard pattern sets of each layer, using multi time granularity and multi span. Then, according to the standard pattern set, with the prediction strategy, the compound pattern with high stability extension behavior is used as the theme pattern. This can predict with online pattern matching. Finally, a distributed parallel computing architecture is used to implement the whole processing algorithm. Theoretical deduction and experimental data analysis show that the accuracy of the method is improved compared with the traditional time series prediction method.
Key words: multivariate time series     time granularities     clustering     theme discovery     fusion prediction    

借由数据集合内在模式的提取、内涵知识的挖掘形成有价值的信息, 以用于分析、评估、预测和控制, 是目前大数据和人工智能领域的主要研究内容之一[1,2]. 当根据应用场景和数据特点对数据进行处理时, 若从时间纬度进行考察, 可分为: ① 无时序要求, 即数据本身是一种事物性逻辑关联关系而非时间序列, 或者数据为时间序列其处理应用无时序要求[3,4]; ② 严时序要求, 即数据本身为时间序列, 对其处理是利用历史时间序列分析实现对紧随其后的预测、控制等[5,6]; ③ 介于二者之间, 数据本身包含时间序列集和非时间序列集, 通过对其处理以用于未来[7,8]. 第三种数据集具有普遍性, 应用于各种领域[9,10]. 第一种数据集也可按照数据收集的时间戳构建成时序序列结构[11], 以用于描述所代表事物的演进过程.

通过实时演进的数据序列集的分析处理实现对事物未来行为的预测是数据分析的主要目的之一. 基于数据挖掘的行为预测, 从整个处理流程来看, 要实现从序列的建模、分割、相似性度量与搜索、聚类与分类、在线模式匹配, 到最终的预测决策. 目前的研究主要集中在序列的分割[12,13], 相似性搜索[14], 相似性度量[15], 序列的建模、聚类和分类[1620]等方面, 侧重于单一方法的性能提升, 对融合整个流程以提升预测性能需要深入研究. 文献[21,22]介绍了一类模式挖掘方法, 主要用于从数据库中提取频繁出现的特定模式以找出数据的某种特性, 为静态分析, 对实时演化的时间序列集的行为预测缺乏论述. 文献[23]试图通过序列的模糊比对实现预测, 但参入比对的序列为现时子序列, 现时子序列如何延展到未来时刻没有分析. 文献 [24,25] 给出了多尺度融合的数据挖掘方法, 但对挖掘后的预测没有做进一步的研究. 文献[26]给出了对复杂系统数据挖掘分层建模的方法, 其所构建的模型对历史数据的拟合很好, 但是其预测效果并没有定量给出. 目前实用的时间序列预测方法为传统的ARIMA类方法, 但在非平稳条件及混沌情况下, 性能下降.

综上所述, 通过数据挖掘的方法可以对实时演进数据序列集在特定情况下的未来行为作预测, 但应当在模式提取时加入预测的考量. 若仅基于在数据中找相似点、聚类, 然后比对预测, 缺乏指向性. 再则, 要实现预测, 未来数据不可获取, 只有当下数据和历史数据, 而复杂事物的非平稳性、突变性, 使得当下子序列与模式的匹配, 并不能够说明未来的情形, 需要在序列分割、模式提取和在线匹配识别时向前延展. 鉴于此, 本文以实时演进数据集为对象, 通过融合处理, 提出了一种基于多时间粒度分层分割、模式提取、主题发现与联合决策的预测方法.

1 序列建模与模式提取

现实世界中所观测录取的数据是客观事物行为的记录和关联因子的描述. 构建数据序列集 $\Phi =$ $ \left\langle {{{X}},{{U}},{{Y}},{{V}}} \right\rangle $ ( ${{X}} = \left\{ {{x}} \right\}$ , ${{U}} = \left\{ {{u}} \right\}$ , ${{Y}} = \left\{ {{y}} \right\}$ , ${{V}} = \left\{ {{v}} \right\}$ )以刻画随时间而不断向前演进的客观事物R. R的主要行为由多元时间序列 ${{x}} = [{x_i}(t)]$ $(i = 1,2, \cdots ,{m_1})$ ${m_2}$ 个非时间序列 ${{u}} = [{u_i}]$ $(i = 1,2, \cdots ,{m_2})$ 记录, 关联的影响因素由多元时间序列 ${{y}} = [{y_i}(t)]$ $(i = 1,2, \cdots ,{m_3})$ ${m_4}$ 个非时间序列 ${{v}} = [{v_i}]$ $(i = 1,2, \cdots ,{m_4})$ 描述. 以R在t时刻之前的数据集 $\Phi (t)$ 的分析实现对R在 $t + \Delta t$ 时刻的行为预测即为要解决的问题.

R受到各种因素的作用, 其数据随机性、确定性并存, 如金融经济数据、海洋气象数据、战场数据等. 可以认为R受到宏观基本规律的约束、当下现实因素的作用、微观层次的扰动以及外部稀疏的偶然性冲击. 根据以上推论, R在某一时刻的最终行为可以认为是由以上四方面共同作用决定, 则如果由数据序列集 $\Phi = \left\langle {{{X}},{{U}},{{Y}},{{V}}} \right\rangle $ 导出表征以上四个方面的数据序列集: ${{A}}$ , 表征宏观规律; ${{B}}$ , 当下作用; ${{C}}$ , 微观层面; ${{E}}$ , 外部冲击, 则借由 $\Psi = \left\langle {{{A}},{{B}},{{C}},{{E}}} \right\rangle $ 上的内在模式提取, 再进行融合预测, 将更符合事物逻辑, 有望提高预测的准确度. 由 $\Phi $ 导出 $\Psi $ 可根据多时间粒度的概念[3,17], 借由多时间粒度的分层与分割实现.

1.1 基于时间粒度的序列分层与分割

以多元时间序列 ${{x}} = [{x_i}(t)]$ $(i = 1,2, \cdots ,{m_1})$ 为例. 若 ${x_i}(t)$ 可获得不同时间采样间隔的序列 ${x_i}(n{T_1}),{x_i}(n{T_2}), \cdots ,$ ${x_i}(n{T_Z})$ , 则以待预测的时间粒度为中间层B, 将 ${x_i}(t)$ 分成ABC三层:

$\left\{ {\begin{aligned}& {{x_i}(n{T_A}) = \left\{ {{x_i}(n{T_z})} \right\}({T_z} > {T_B})} \\ & {{x_i}(n{T_B}) = \left\{ {{x_i}(n{T_z})} \right\}({T_z} \approx {T_B})} \\ & {{x_i}(n{T_C}) = \left\{ {{x_i}(n{T_z})} \right\}({T_z} < {T_B})} \end{aligned}} \right.$ (1)

若记录数据只有一种固定采样率的序列 ${x_i}(n{T_0})$ , 采用平均的方式, 将 ${x_i}(n{T_0})$ 整合出三层序列 ${x_i}(n{T_A})$ ${x_i}(n{T_B})$ ${x_i}(n{T_C})$ , 记为ABC. 对Y的操作按照与X对齐的方式同步处理.

从序列 ${x_i}(n{T_A})$ ${x_i}(n{T_B})$ ${x_i}(n{T_C})$ (简记为 ${x_i}(n)$ )中提取模式, 需要对其进行分割. 对序列 ${x_i}(n)$ 的分割即是将 ${x_i}(n)$ 按照等时间长度或者变时间长度划分为一族子序列, 通过子序列的聚类分析提取内在模式.

${{x}} = [{x_i}(n)]$ $m$ 维长度为 $N$ 的多元时间序列, 虚拟一个维度 $m$ 长度 $W$ 的窗. 令 $W = \xi {W_0}$ , ${W_0}$ 根据应用场景给定, $\xi $ 为调整系数. 跨度 $L$ 为窗 $W$ 向前滑动截取的步长, ${T_z} \leqslant L \leqslant W$ . 窗 $W$ ${{x}}$ 的起点, 滑动到尾点, 截取一系列子序列 ${{{s}}_k}$ , 得到子序列集合 ${{S}} = ({{{s}}_1},{{{s}}_2}, \cdots ,{{{s}}_K})$ . 当 $L = {T_z}$ 时, 则一步一截取, 前后子序列有重叠部分, 计算量较大; 当 $L = W$ 时, ${{S}}$ 成为 ${{x}}$ 的一个首尾相衔接的子序列分割, 截取效率高, 但当出现跨子序列的模式时, 可能遗漏. 针对具体应用, 合理选取 $L$ 值(或者根据子序列聚类分析结果与 $L$ 值的对照关系, 通过试验比较, 确定 $L$ 值). 具体算法如下:

算法1. 序列分割算法

1) 从集合X中输入待分割序列样本 $\scriptstyle {{x}}$ , 指定初值 $\scriptstyle {W_0}$ , 调整系数 $\scriptstyle \xi \in [0.5,1.5]$ , $\scriptstyle i = 0,j = 1$ .

2) 令 $\scriptstyle \xi = 0.5 + 0.1i$ , $\scriptstyle W = \xi {W_0}$ .

3) 根据 $\scriptstyle W$ , 由 $\scriptstyle {T_z} \leqslant L \leqslant W$ , 给定跨度值 $\scriptstyle L \in [{L_1},{L_2}, \cdots ,{L_J}]$ .

4) 令 $\scriptstyle L = {L_j}$ , 由 $\scriptstyle {{x}}$ 起始位置向前截取长度为 $\scriptstyle W$ 的子序列, 赋给 $\scriptstyle {{{s}}_1}$ .

5) 滑动截取窗向前步进L, 截取 $\scriptstyle {{{s}}_2}$ , 循环操作直到序列尾点, 得到一个截取集 $\scriptstyle {{{S}}_{i,j}} = ({{{s}}_1},{{{s}}_2}, \cdots ,{{{s}}_K})$ .

6) 令 $\scriptstyle j = j + 1$ , 返回第4)步, 直到L遍历 $\scriptstyle [{L_1},{L_2}, \cdots ,{L_J}]$ .

7) 令 $\scriptstyle i = i + 1$ , 返回第2)步, 直到 $\scriptstyle \xi $ 遍历 $\scriptstyle [0.5,1.5]$ .

8) 合并截取集 $\scriptstyle {{{S}}_{i,j}}$ 为最终集合 $\scriptstyle {{S}}$ , $\scriptstyle {{S}}$ 即为序列 $\scriptstyle {{x}}$ 分割后的全体子序列集.

9) 返回第1)步, 输入下一个待分割序列样本.

${{S}}$ ${{x}}$ 的一个分割, 由不等长的一系列子序列 ${{{s}}_k}$ 组成, 代表了在时间粒度 ${T_z}$ 上、在一定时间区间内, 序列可能呈现出的各种表现形式. 通过 ${{S}}$ 的聚类分析, 提取其中蕴含的内在模式, 可用于对 ${{x}}$ 未来时刻行为的预测.

以海洋数据集为例, 不同海区的水温序列总集可看做 ${{X}}$ , 特定海区的水温序列可以看做 ${{x}}$ , 则既可以进行总体特征分析也可以进行特定区域特征分析.

1.2 模式提取

序列集合 ${{S}} = ({{{s}}_1},{{{s}}_2}, \cdots ,{{{s}}_K})$ ${{x}}$ 的子序列集, 假定存在 ${{x}}$ 的内含模式集 ${{\Gamma }} = ({{{\Gamma }}_1},{{{\Gamma }}_2}, \cdots ,{{{\Gamma }}_P})$ , 则 $\forall {{{s}}_k} \in {{S}}$ , $\exists {{{\Gamma }}_p} \in {{\Gamma }}$ , 使得:

${{{s}}_k} = {{{\Gamma }}_p} + \varepsilon \;\;\left( {p \in [1,P]} \right)$ (2)

其中, $\varepsilon $ 是子序列 ${{{s}}_k}$ 与它所分属模式 ${{{\Gamma }}_p}$ 之间的差异, ${{{s}}_k}$ ${{{\Gamma }}_p}$ 越相似, $\varepsilon $ 越小. 对于度量相似性的处理方法, 有闵可夫斯基距离法、动态时间弯曲距离法(Dynamic Time Warping, DTW)[15,27]、扩展Frobenius范数法(Extended Frobenius Norm, Eros)等. 闵式距离简单直观, 其特例欧式距离是常用的距离计算方法, 但它对波动、噪声非常敏感, 且需要序列等长. Eros不满足距离三角不等式, 对于本文后续预测处理不适用, 因而下面采取DTW进行相似性度量. DTW通过时间序列弯曲部分的自我复制, 实现序列相似波形的对齐匹配, 不要求序列等长.

${{{s}}_i} = ({{{s}}_{i,1}},{{{s}}_{i,2}}, \cdots ,{{{s}}_{i,{N_i}}})$ , ${{{s}}_j} = ({{{s}}_{j,1}},{{{s}}_{j,2}}, \cdots ,{{{s}}_{j,{N_j}}})$ 是维度为 $m$ , 时间点长度分别为 ${N_i}$ ${N_j}$ 的两个多元子序列, 其DTW距离[15]:

$d({{{s}}_i},{{{s}}_j}) = {d_0}({{{s}}_{i,1}},{{{s}}_{j,1}}) + \min \left\{ \begin{aligned}&d({{{s}}_i},{{{s}}_j}[2:{N_j}])\\&d({{{s}}_i}[2:{N_i}],{{{s}}_j})\\&d({{{s}}_i}[2:{N_i}],{{{s}}_j}[2:{N_j}])\end{aligned} \right.$ (3)

其中, ${d_0}({{{s}}_{i,1}},{{{s}}_{j,1}})$ ${{{s}}_{i,1}}$ , ${{{s}}_{j,1}}$ 的基距离, 用欧式距离计算.

对分割得到的子序列集合 ${{S}}$ 根据DTW距离进行相似性度量, 利用K-mean法进行聚类. 设在A, B, C层上分别聚合为 ${P_A}$ ${P_B}$ ${P_C}$ 簇, 以各簇质心所对应的子序列及各簇内复现频数靠前的若干子序列作为标准模式, 得到 ${{{\Gamma }}_A} = ({{\Gamma }}_A^1,{{\Gamma }}_A^2, \cdots ,{{\Gamma }}_A^{{P_A}})$ , ${{{\Gamma }}_B} = ({{\Gamma }}_B^1,{{\Gamma }}_B^2, \cdots ,{{\Gamma }}_B^{{P_B}})$ , ${{{\Gamma }}_C} = ({{\Gamma }}_C^1,{{\Gamma }}_C^2, \cdots ,{{\Gamma }}_C^{{P_C}})$ .

${{Y}}$ 的操作按照与 ${{X}}$ 对齐的方式同步处理. 于是由 ${\rm{R}}$ 的原始数据序列集 $\Phi = \left\langle {{{X}},{{U}},{{Y}},{{V}}} \right\rangle $ , 经过前述处理, 得到 ${{X}},{{Y}} \to {{A}},{{B}},{{C}} \to {{{\Gamma }}_A},{{{\Gamma }}_B},{{{\Gamma }}_C}$ . 非时间序列集 ${{U}}$ ${{V}}$ 根据时间戳对应归类为孤立事件集 ${{E}} = ({{{e}}_U},{{{e}}_V})$ . 于是完成了 $\Phi \to \Psi \to {\Omega _0}$ , $\Psi = \left\langle {{{A}},{{B}},{{C}},{{E}}} \right\rangle $ $\Phi $ 经多时间粒度分层整合后的数据序列集, ${\Omega _0} = \left\langle {{{{\Gamma }}_A},{{{\Gamma }}_B},{{{\Gamma }}_C},{{E}}} \right\rangle $ $\Psi $ 经过时间分割、相似度量、聚类分析后的内在模式表征集.

2 主题发现与预测策略

根据 ${\rm{R}}$ 记录数据所提取的内在模式表征集 ${\Omega _0} = \left\langle {{{{\Gamma }}_A},{{{\Gamma }}_B},{{{\Gamma }}_C},{{E}}} \right\rangle $ , 对它未来行为进行预测, 可以有多种策略, 应进行融合处理.

2.1 主题发现

对于R而言, 可知的是 ${t_0}$ $t \leqslant {t_0}$ 前的数据序列集. 在 ${t_0}$ 时刻附近的表现受到宏观、中观、微观层及外部冲击的影响, 呈现的序列对很多事物而言不一定具有连续性和稳定性, 但是其呈现的模式具有近似意义上的可复现性. 当特定模式出现时, R的后续行为表现出相对稳定性. 即总体上不一定可以准确预测, 但是当序列开始呈现这种特定的模式时, 利用这种稳定的表现, 向未来进行延展, 即可以用于此时刻R未来行为的预测. 这些特定模式定义为主题模式. ${\Omega _0} = \left\langle {{{{\Gamma }}_A},{{{\Gamma }}_B},{{{\Gamma }}_C},{{E}}} \right\rangle $ 囊括了R的行为特征. 主题模式集 ${{M}} = ({{{m}}_m})(m = 1,2, \cdots ,M)$ 可以由提取的标准模式集合 ${{{\Gamma }}_A}$ , ${{{\Gamma }}_B}$ , ${{{\Gamma }}_C}$ , ${{E}}$ , 中的模式组合得到, 如公式(4)所示.

${{{m}}_m} = < {{\Gamma }}_A^{{p_A}},{{\Gamma }}_B^{{p_B}},{{\Gamma }}_C^{{p_C}},{{e}}_U^{{p_U}},{{e}}_V^{{p_V}} > $ (4)

其中, ${p_A} \in [1,{P_A}]$ , ${p_B} \in [1,{P_B}]$ , ${p_C} \in [1,{P_C}]$ , ${p_U} \in [1,{P_U}]$ , ${p_V} \in [1,{P_V}]$ . 组合方式可以基于专家经验或者对全集合进行遍历. 具体如下:

第一步: 对于 ${{{m}}_m}$ , 基于相似性度量, 从一定时长 $L$ 的历史数据序列中进行匹配, 统计其出现频数 $f({{{m}}_m})$ .

第二步: 根据R预测要求, 以二元决策(H0, H1)为例(天气预报的下雨、不下雨, 证券价格的涨跌等; 对于非二元决策, 可以进行预测区间离散化处理, 形成一个多元决策问题, 处理方式一致), 统计当出现 ${{{m}}_m}$ 时R后续行为为H0、H1的出现频数 ${f'_0}({{{m}}_m})$ ${f'_1}({{{m}}_m})$ .

第三步: 计算决策 ${{\rm{H}}_{\rm{0}}}$ ${{\rm{H}}_1}$ 的正确率 $\eta ({{\rm{H}}_{\rm{0}}}/{{{m}}_m})$ $\eta ({{\rm{H}}_1}/{{{m}}_m})$ , 如公式(5)所示:

$\left\{ \begin{aligned}&\eta ({{\rm{H}}_{\rm{0}}}/{{{m}}_m}) = \frac{{{{f'}_0}({{{m}}_m})}}{{f({{{m}}_m})}} \times 100\% \\&\eta ({{\rm{H}}_1}/{{{m}}_m}) = \frac{{{{f'}_1}({{{m}}_m})}}{{f({{{m}}_m})}} \times 100\% \end{aligned} \right.$ (5)

设定正确率门限 $\delta $ ( $\delta \in (0.5,1.0]$ ), 对于 $\eta ({{\rm{H}}_{\rm{0}}}/{{{m}}_m}) \geqslant \delta $ ${{{m}}_m}$ 归于 ${{\rm{H}}_{\rm{0}}}$ 主题模式 ${{{M}}_{{\rm{H0}}}}$ , $\eta ({{\rm{H}}_1}/{{{m}}_m}) \geqslant \delta $ ${{{m}}_m}$ 归于 ${{\rm{H}}_1}$ 主题模式 ${{{M}}_{{\rm{H_1}}}}$ . 再根据出现频数 $f({{{m}}_m})$ ${{{M}}_{{\rm{H_0}}}}$ ${{{M}}_{{\rm{H_1}}}}$ ${{{m}}_m}$ 由高到低排序, 设定频数门限 $\omega $ , 剔除 $f({{{m}}_m}) < \omega $ 的低频度模式. 至此, 得到可资利用的主题模式 ${{{M}}_{{\rm{H_0}}}}$ ${{{M}}_{{\rm{H_1}}}}$ .

2.2 预测策略

对于实时演进的系列集R而言, 现时刻为 ${t_0}$ , 则可获得的即为 $t \leqslant {t_0}$ 之前的数据和相关联的孤立事件 ${{u}}$ , ${{v}}$ . 需要以其为基础对 ${t_0} + \Delta t$ 时的行为进行预测. 在 ${t_0}$ 时刻, 以1.1节的时间粒度处理方法, 实时在线截取A层的待匹配子序列 ${{{x}}_A}(n{T_A})$ , 记为 ${{{x}}_A}(n)$ , 同样处理得到 ${{{x}}_B}(n)$ , ${{{x}}_C}(n)$ . ${{{x}}_A}(n)$ , ${{{x}}_B}(n)$ , ${{{x}}_C}(n)$ 的时间点数分别为 ${N_A}$ , ${N_B}$ , ${N_C}$ , 其值取对应层标准序列长度的平均值(为了描述简单, 假设A, B, C层都只有一种时间粒度, 实际处理中可以在每一层尝试多种时间粒度). 在 ${t_0}$ 时刻附近, ${\rm{R}}$ 的行为由 ${{{R}}_{t_0}} = < {{{x}}_A}(n),{{{x}}_B}(n),{{{x}}_C}(n),{{u}},{{v}} > $ 表示.

根据前述处理 ${{{\Gamma }}_A} = ({{\Gamma }}_A^1,{{\Gamma }}_A^2, \cdots ,{{\Gamma }}_A^{{P_A}})$ ${{{S}}_A} = ({{{s}}_1},$ ${{{s}}_2}, \cdots ,{{{s}}_K})$ 聚合后的标准模式. 待匹配子序列 ${{{x}}_A}(n)$ , 需要计算它与 ${{{\Gamma }}_A}$ 中何种标准模式最为接近, 抽取此模式用做预测. 给定距离度量门限 $d_0^A$ , 以 ${{\Gamma }}_A^{{p_A}}$ 为中心, $d_0^A$ 为半径, 将 ${{{S}}_A}$ 中成员分为 ${P_A}$ 个不重叠的簇. 当 $d({{\Gamma }}_A^{{p_A}},{{{s}}_i}) \leqslant d_0^A$ 时, ${{{s}}_i}$ 属于 ${p_A}$ 簇, 圆外的 ${{{s}}_i}$ 全部剔除, 剔除后的余集记为 ${{{S}}'_A}$ , 同理得到 ${{{S}}'_B}$ ${{{S}}'_C}$ . 如图1所示.

图 1 余集获取示意图

以余集 ${{{S}}'_A}$ ${{{S}}'_B}$ ${{{S}}'_C}$ 为基础, 构建下面两种预测方法.

(1) 主题发现预测

先不考虑孤立事件影响, 根据所挖掘的主题模式 ${{{M}}_{{\rm{H0}}}} = < {{\Gamma }}_{A0}^{{p_A}},{{\Gamma }}_{B0}^{{p_B}},{{\Gamma }}_{C0}^{{p_C}} > $ , ${{{M}}_{{\rm{H1}}}} = < {{\Gamma }}_{A1}^{{p_A}},{{\Gamma }}_{B1}^{{p_B}},{{\Gamma }}_{C1}^{{p_C}} > $ , 对 ${t_0}$ 时刻的复合序列 ${{{x}}_t} = < {{{x}}_A}(n),{{{x}}_B}(n),{{{x}}_C}(n) > $ 进行匹配. 匹配过程以DTW距离进行度量, 采取K最邻近法(k-Nearest Neighbor, KNN)对 ${{{x}}_A}(n)$ ${{{x}}_B}(n)$ ${{{x}}_C}(n)$ 在余集 ${{{S}}'_A}$ ${{{S}}'_B}$ ${{{S}}'_C}$ 中进行分类处理. 若经过分类处理 ${{{x}}_A}$ , ${{{x}}_B}$ , ${{{x}}_C}$ 同时匹配上 ${{\Gamma }}_{A0}^{{p_A}}$ ${{\Gamma }}_{B0}^{{p_B}}$ ${{\Gamma }}_{C0}^{{p_C}}$ , 则认为复合序列 ${{{x}}_t}$ 匹配上 ${{{M}}_{{\rm{H0}}}}$ 中的某特定主题模式 ${{{m}}_{{\rm{H0}}}}$ , 抽取 ${{{m}}_{{\rm{H0}}}}$ 利用其后续延展的行为进行 ${t_0} + \Delta t$ ${{{x}}_t}$ 的预测; 若 ${{{x}}_A}$ , ${{{x}}_B}$ , ${{{x}}_C}$ 同时匹配上 ${{\Gamma }}_{A1}^{{p_A}}$ ${{\Gamma }}_{B1}^{{p_B}}$ ${{\Gamma }}_{C1}^{{p_C}}$ , 则认为 ${{{x}}_t}$ 匹配上 ${{{M}}_{{\rm{H1}}}}$ 中的某特定主题模式 ${{{m}}_{{\rm{H1}}}}$ , 抽取 ${{{m}}_{{\rm{H1}}}}$ 进行预测; 匹配不上则放弃 ${t_0}$ 时刻的预测, 序列向前推进, 进行下一个处理.

分析2.1节利用历史数据挖掘主题模式的过程, 及这种在线匹配、主题发现预测的策略, 可知其为低频度模式. 鉴于此, 制定主题发现预测方法的补充策略, 即联合决策预测.

(2) 联合决策预测

联合决策预测策略为对 ${{{x}}_A}(n)$ ${{{x}}_B}(n)$ ${{{x}}_C}(n)$ 在余集 ${{{S}}'_A}$ ${{{S}}'_B}$ ${{{S}}'_C}$ 中分别匹配, 只要在各层匹配上标准模式, 抽取标准模式进行联合推断. 方法如下:

第一步: 根据DTW距离度量, 根据KNN法对 ${{{x}}_A}(n)$ 在余集 ${{{S}}'_A}$ 中进行分类处理. 设定参数 $\rho \in [70\% ,90\% ]$ , 截取 ${{{x}}_A}$ 的后 $\rho $ 部分与 ${{{s}}_i}$ 的前 $\rho $ 部分, 分别记为 ${{{x}}_{A,\rho }}$ ${{{s}}_{i,\rho }}$ , 计算DTW距离 $d({{{x}}_{A,\rho }},{{{s}}_{i,\rho }})$ . 若经过分类处理 ${{{x}}_A}$ 属于 ${{\Gamma }}_A^{{p_A}}$ 簇, 则将 ${{\Gamma }}_A^{{p_A}}$ 簇标准模式 ${{\Gamma }}_A^{{p_A}}$ 赋给 ${{{x}}_A}$ , 并认为 ${{\Gamma }}_A^{{p_A}}$ 的后 $1 - \rho $ 序列即为 ${{{x}}_A}$ 向前延展的预测值. 记此预测为 ${D_A}$ . 对 ${{{x}}_B}$ ${{{x}}_C}$ 进行同样处理, 得到 ${D_B}$ ${D_C}$ .

第二步: 以二元决策 ${\rm{(}}{{\rm{H}}_{\rm{0}}},{{\rm{H}}_1})$ 为例, 制定规则 : 只有当 ${D_A}$ ${D_B}$ ${D_C}$ 同时指示 ${{x}}({t_0} + \Delta t)$ 的行为为 ${{\rm{H}}_{\rm{0}}}$ 时, 推断为 ${{\rm{H}}_{\rm{0}}}$ , 同理处理 ${{\rm{H}}_1}$ (也可以根据宏观、中观、微观的先验知识, 对 ${D_A}$ ${D_B}$ ${D_C}$ 进行加权处理, 本文采取“同时指示”这种强准则). 则由 ${D_A}$ ${D_B}$ ${D_C}$ 进行联合预测的正确概率如公式(6)所示:

${P_f}({{\rm{H}}_{\rm{0}}}/{{A}},{{B}},{{C}}) = \frac{{{P_{f1}}}}{{{P_{f1}} + {P_{f2}}}}$ (6)

其中, ${P_{f1}} = {P_f}({{\rm{H}}_{\rm{0}}}){P_f}{{(A)}}{P_f}({{B}}){P_f}({{C}})$ , ${P_{f2}} = (1 - {P_f}({{\rm{H}}_{\rm{0}}}))$ $(1 - {P_f}{{(A)}})(1 - {P_f}({{B}}))(1 - {P_f}({{C}}))$ , ${P_f}({{\rm{H}}_{\rm{0}}})$ ${{\rm{H}}_{\rm{0}}}$ 出现的先验概率, ${P_f}{{(A)}}$ ${P_f}({{B}})$ ${P_f}({{C}})$ 为根据 ${D_A}$ ${D_B}$ ${D_C}$ 决策的正确概率(在此假设 ${D_A}$ ${D_B}$ ${D_C}$ 决策相互独立, 若完全相关则退化为单层模式), 与模式复现的稳定性相关.

实际的预测要求是在本层(B层)时间粒度上对 ${{x}}({t_0} + \Delta t)$ 的行为作出判断. 由公式(6)推导可得到:

$\left\{ \begin{aligned}&\forall {P_f}({{\rm{H}}_{\rm{0}}}) \ge 0.5,{P_f}({\rm{A}}) + {P_f}({\rm{C}}) \ge 1\\&\exists {P_f}({{\rm{H}}_{\rm{0}}}{\rm{/A}},{\rm{B}},{\rm{C}}) \ge {P_f}({\rm{B}})\end{aligned} \right.$ (7)

考察公式(7), 假设序列总体上呈现随机漫步, 毫无偏向, 则 ${P_f}({{\rm{H}}_{\rm{0}}}) = 0.5$ , 此时可以认为模式识别无意义, ${P_f}({{A}}) = 0.5$ ${P_f}(C) = 0.5$ ; 若序列具有偏向, 则或者 ${P_f}({{\rm{H}}_{\rm{0}}}) > 0.5$ 或者 ${P_f}({{\rm{H}}_1}) > 0.5$ , 考虑到 ${D_A}$ ${D_C}$ 是根据提取的模式进行匹配识别作出的二元判断, 其准确度应 ${P_f}({{A}}) \geqslant 0.5$ ${P_f}(C) \geqslant 0.5$ . 综上所述, ${P_f}({{\rm{H}}_{\rm{0}}}/{{A}},{{B}},$ ${{C}}) \geqslant {P_f}({{B}})$ 的条件可以认为满足, 即在退化条件下, “同时指示”这种强准则下的联合决策正确率也至少等于基于本层的决策 ${P_f}({{B}})$ , 若序列展现偏向性, 则联合决策的正确率将会提升.

综合两种预测策略, 设计下面的整体预测方案:

算法2. 整体预测方案

1) 经历史数据处理得到标准模式库 $\scriptstyle {\Omega _0} = \left\langle {{{{\Gamma }}_A},{{{\Gamma }}_B},{{{\Gamma }}_C},{{E}}} \right\rangle $ , 经主题挖掘得到主题模式集合 $\scriptstyle {{{M}}_{{\rm{H_0}}}} = ({{{m}}_{{\rm{H_0}}}})$ $\scriptstyle {{{M}}_{{\rm{H_1}}}} = ({{{m}}_{{\rm{H_1}}}})$ .

2) 获取聚类分析后的余集 $\scriptstyle {{{S}}'_A}$ $\scriptstyle {{{S}}'_B}$ $\scriptstyle {{{S}}'_C}$ .

3) 以当前时刻 $\scriptstyle {t_0}$ 为基准向后截取并整合出待匹配子序列 $\scriptstyle {{{x}}_A}$ , $\scriptstyle {{{x}}_B}$ , $\scriptstyle {{{x}}_C}$ .

4) 采用DTW距离度量, 根据KNN法对 $\scriptstyle {{{x}}_A}$ , $\scriptstyle {{{x}}_B}$ , $\scriptstyle {{{x}}_C}$ 在余集 $\scriptstyle {{{S}}'_A}$ $\scriptstyle {{{S}}'_B}$ $\scriptstyle {{{S}}'_C}$ 中进行分类、匹配. 若匹配不上, $\scriptstyle {t_0}$ 不做预测, 转入3), 等待序列向

前演进后的下一时刻的处理. 若匹配上, 即 $\scriptstyle {{{x}}_A} \to {{\Gamma }}_A^{{p_A}}$ $\scriptstyle {{{x}}_B} \to {{\Gamma }}_B^{{p_B}}$ $\scriptstyle {{{x}}_C} \to {{\Gamma }}_C^{{p_C}}$ , 转入5).

5) 若 $\scriptstyle < {{\Gamma }}_A^{{p_A}},{{\Gamma }}_B^{{p_B}},{{\Gamma }}_C^{{p_C}} > \in {{{M}}_{{\rm{H_0}}}}$ 则以主题模式 $\scriptstyle {{{m}}_{{\rm{H_0}}}} = < {{\Gamma }}_A^{{p_A}},{{\Gamma }}_B^{{p_B}},{{\Gamma }}_C^{{p_C}} > $ 的行为进行 $\scriptstyle {\rm{R}}({t_0} + \Delta t)$ 预测; 若 $\scriptstyle < {{\Gamma }}_A^{{p_A}},{{\Gamma }}_B^{{p_B}},{{\Gamma }}_C^{{p_C}} > \in {{{M}}_{{\rm{H_1}}}}$ 则以主题模式 $\scriptstyle {{{m}}_{{\rm{H_1}}}} =$ $\scriptstyle < {{\Gamma }}_A^{{p_A}},{{\Gamma }}_B^{{p_B}},{{\Gamma }}_C^{{p_C}} > $ 的行为进行 $\scriptstyle {\rm{R}}({t_0} + \Delta t)$ 预测; 若 $\scriptstyle < {{\Gamma }}_A^{{p_A}},{{\Gamma }}_B^{{p_B}},{{\Gamma }}_C^{{p_C}} >$ $\scriptstyle \notin \{ {{{M}}_{{\rm{H_0}}}},{{{M}}_{{\rm{H_1}}}}\} $ , 则转入6).

6) 联合决策预测:设定匹配百分比参数 $\scriptstyle \rho $ , 转入4)重新计算; 当 $\scriptstyle {{{x}}_A} \to {{\Gamma }}_A^{{p_A}}$ $\scriptstyle {{{x}}_B} \to {{\Gamma }}_B^{{p_B}}$ $\scriptstyle {{{x}}_C} \to {{\Gamma }}_C^{{p_C}}$ , 获取延展预测值 $\scriptstyle {D_A}$ $\scriptstyle {D_B}$ $\scriptstyle {D_C}$ , 若 $\scriptstyle {D_A}$ $\scriptstyle {D_B}$ $\scriptstyle {D_C}$ 同时指示 $\scriptstyle {\rm{R}}({t_0} + \Delta t)$ 的行为为 ${{\rm{H}}_{\rm{0}}}$ 时, 推断为 $\scriptstyle {{\rm{H}}_{\rm{0}}}$ ; 同理处理 $\scriptstyle {{\rm{H}}_1}$ 否则转入2), 等待序列向前演进后的下一时刻的处理.

注: 若存在孤立事件的冲击, 则通过历史对照的方法, 加入模式匹配中.

3 系统实现与实例分析

基于上述模型构建与算法设计, 在计算机系统上予以实现并选取实例进行效果分析.

3.1 系统实现

前述模型与算法中, 变跨度滑窗子序列截取、DTW距离计算、相似性搜素、K-mean法聚类分析和KNN分类等, 计算量都较大, 为了更好的从历史数据序列中提取模式, 需尽可能的采用较长的时间序列, 从而造成计算量急剧上升. 在线匹配预测, 其计算量要小于模式提取的过程. 鉴于此, 采用分布式并行处理架构, 如图2所示.

整个系统由AB两个子系统组成. A系统采取外部云计算托管; B系统在线监控实时处理, 由N个并行计算节点组成. 软件设计采用Python语言粘合MPI并行编程环境的方式. 以Python编制数据端口, 将数据导入分发, 一份为模式提取全时长数据库, 一份为在线数据片集. 将模式提取并行计算程序布置在外部云系统上, 在全时长数据库上进行提取操作, 维持一个标准模式库并进行主题模式的挖掘, 所得到的模式库发往B系统. 在本地并行计算机系统上布置在线匹配预测的并行计算程序, 将模式库与在线数据片集结合, 根据数据序列的驱动, 实时更新处理. 累积一定时间, 在A系统上重新启动模式提取处理, 监测R是否会演化, 出现新的标准模式或者主题模式则更新模式库, 并发往B系统.

3.2 实例分析

本文目的是构建一种通用的处理架构, 主要面向气象海洋数据、战场数据以及经济金融数据. 出于数据获取便利性的考虑, 下面以石油期货相关数据为例进行算法验证.

试验数据: NYMEX原油期货主力合约数据(2002.1.1至2016.1.1, 取其年月周日分的价格序列的开盘价、收盘价、最高价、最低价、相关的宏观经济数据以及关联国际事件), 2002.1.1–2012.1.1为模式提取数据区间, 2012.1.2–2016.1.1为模拟预测处理数据区间.

图 2 系统框图

经处理, A层时间粒度取为6T(T代表一日)、B层为TC层为2个小时, 以B层日预测为目标, 预测日线上T+n日价格行为(本文取T+2日的预测). 匹配百分比 $\rho = 0.8$ . K-mean聚类时, 设置ABC层初始分类数目均为6. 根据程序数据结果, A层额外抽取频繁子序列2个, B层4个,C层1个. 最终提取结果为: A层标准模式数 ${P_A} = 8$ , B层标准模式数 ${P_B} = 10$ C层标准模式数 ${P_C} = 7$ .

主题模式挖掘中组合模式 $ < {{\Gamma }}_A^{{p_A}},{{\Gamma }}_B^{{p_B}},{{\Gamma }}_C^{{p_C}} > $ 在历史数据集中(总长10年)的出现频数(从高到低)如图3所示.

图 3 组合模式在历史数据集中的出现频数

图4为, 组合模式 $ < {{\Gamma }}_A^{{p_A}},{{\Gamma }}_B^{{p_B}},{{\Gamma }}_C^{{p_C}} > $ T+2日预测的正确概率统计: H0表示预测T+2日涨, H1表示预测T+2日跌.

根据图3图4的统计, 取出现频数较高、对H0预测正确概率较高的组合模式作为主题模式 ${{{M}}_{{\rm{H_0}}}} = ({{{m}}_{{\rm{H_0}}}})$ ; 对H1预测正确概率较高的组合模式作为主题模式 ${{{M}}_{{\rm{H_1}}}} = ({{{m}}_{{\rm{H_1}}}})$ .

根据上述结果, 定义: F1, 主题发现式预测; F2, 联合决策式预测; F3, 传统的基于日线的ARIMA预测; F4, 日线子序列模式匹配预测; F5, 分层小波分解预测, 对5种方法的预测性能进行比较. 其中, F5为将日线通过小波变换, 分解为表示宏观的和表示细节的部分, 在每层上分别用ARIMA递推, 再相加的方式进行. 模拟预测数据区间为2012.1.2-2016.1.1共计4年.

F1: 抽取 ${{{M}}_{{\rm{H_0}}}}$ 中H0决策正确率最高, 且在2002.1.1–2012.1.1中出现频数排序在前30%的主题模式进行匹配预测; 同理抽取 ${{{M}}_{{\rm{H_1}}}}$ 中主题模式. 在F1预测做出时, 同步记录F3、F4、F5的预测结果. 其决策的统计结果如表1所示.

表1可发现, F1相比其他方法有较高的正确率, 说明经过主题模式挖掘, 某些特定的复合模式出现时, 其后续的行为十分稳定, 用之预测有较高的准确率. 但是其中预测最准确且复现频率排序前30%的主题模式出现的频率也只有年平均18.3次, 十分稀疏.

F2: 通过在线分层匹配处理, 当均匹配上时, 启动决策. 若“同时指示”H0或H1, 则取此指示为决策, 统计正误; 否则放弃. 同步记录F3、F4、F5的预测结果. 其决策的统计结果如表2所示.

根据表2结果, F2也比F3、F4、F5准确率要高, 但是其复现频率也不高, 年平均出现49.5次, 且联合决策的放弃数也较高. 将F1、F2结合, 按照前述算法2的流程进行在线监测, 可以提高可预测的频数.

图 4 组合模式在历史数据集中预测的正确率统计

表 1 F1方法与其他方法预测性能比较

表 2 F2方法与其他方法预测性能比较

综合言之, 准确性的提高得益于特定模式的挖掘和联合判断, 但这种处理同时注定了在线处理时, 只能等待序列在实时演进过程中呈现出此模式近似态时才可进行决策. 考察实际应用场景, 这种新的预测方法具有意义(如在投资决策中, 当机会出现时再投入显然比贸然介入更有利; 在海洋水文参数与作战场景呈现某种特定态势时, 作出未来态势推断并付诸行动比较适宜), 而常规的时时刻刻做未来预测的准确性值得警惕.

4 结束语

复杂事物行为的数据序列集, 变化复杂、序列前后时刻存在逻辑上的不确定性、且概率分布未知、具有混沌突变性. 在实时演进过程中, 其平稳运行与突然变化相互杂交, 无法实时推断下一时刻会发生什么. 但是某些模式或会反复出现. 当在监测过程中, 这些特殊形态显现大部的时候, 其后续有较大概率按照此模式运行. 文中根据事物影响因子的宏微观特性, 将序列集通过多时间粒度和跨度的分层分割, 提取代表各层特性的标准模式集, 再挖掘具有稳定延展表现的主体模式, 构建出主题模式在线匹配和联合决策的预测方法. 此方法与传统的几种序列预测方法相比, 具有较高的预测准确性, 但是在线复现率不高. 如果对算法中的部分门限和参数进行放宽处理, 则可以提高频数, 但是预测准确性可能降低. 准确率、复现率与门限和参数的对应关系、折中处理等, 需要结合具体应用场景作进一步研究.

参考文献
[1]
Lynch C, Goldston D, Howe D, et al. Big data: Science in the petabyte era. Nature, 2008, 455(7209): 1-136. DOI:10.1038/455001a
[2]
Los W, Wood J. Dealing with data: Upgrading Infrastructure. Science, 2011, 331(6024): 1515-1516.
[3]
梁吉业, 钱宇华, 李德玉, 等. 大数据挖掘的粒计算理论与方法. 中国科学: 信息科学, 2015, 45(11): 1355-1369.
[4]
Aghabozorgi S, Shirkhorshidi AS, Wah TY. Time-series clustering—a decade review. Information Systems, 2015, 53: 16-38. DOI:10.1016/j.is.2015.04.007
[5]
陈宁, 薛禹胜, 丁杰, 等. 风速时间序列的符号化描述. 电力系统自动化, 2017, 41(11): 33-38. DOI:10.7500/AEPS20170109003
[6]
李建林, 籍天明, 孔令达, 等. 光伏发电数据挖掘中的跨度选取. 电工技术学报, 2015, 30(14): 450-456. DOI:10.3969/j.issn.1000-6753.2015.14.060
[7]
Nunes SA, Romani LAS, Avila AMH, et al. Finding spatio-temporal Patterns in multidimensional data streams. Journal of Information and Data Management, 2013, 4(3): 327-340.
[8]
李德仁, 张良培, 夏桂松. 遥感大数据自动分析与数据挖掘. 测绘学报, 2014, 43(12): 1211-1216.
[9]
李清泉. 从Geomatics到Urban Informatics. 武汉大学学报•信息科学版, 2017, 42(1): 1-6.
[10]
Chang XM, Chen BY, Li QQ, et al. Estimating real-time traffic carbon dioxide emissions based on intelligent transportation system technologies. IEEE Transactions on Intelligent Transportation System, 2013, 14(1): 469-479. DOI:10.1109/TITS.2012.2219529
[11]
牟乃夏, 张恒才, 陈洁, 等. 轨迹数据挖掘城市应用研究综述. 地球信息科学学报, 2015, 17(10): 1136-1142.
[12]
倪志伟, 王超, 胡汤磊, 等. 面向数据流的多粒度时变分形维数计算. 软件学报, 2015, 26(10): 2614-2630.
[13]
李爱国, 覃征. 在线分割时间序列数据. 软件学报, 2004, 15(11): 1671-1679.
[14]
李正欣, 张凤鸣, 张晓丰, 等. 多元时间序列相似性搜索研究综述. 控制与决策, 2017, 32(4): 577-583.
[15]
李正欣, 郭建胜, 毛红保, 等. 多元时间序列相似性度量方法. 控制与决策, 2017, 32(2): 368-372.
[16]
Huo YK, Wang T, Maunder RG, et al. Motion-aware mesh-structured trellis for correlation modelling aided distributed multi-view video coding. IEEE Transactions on Image Processing, 2014, 23(1): 319-331. DOI:10.1109/TIP.2013.2288913
[17]
徐健锋, 张远健, Zhou DN, 等. 基于粒计算的不确定性时间序列建模及其聚类. 南京大学学报(自然科学), 2014, 50(1): 86-94.
[18]
McMahon C, Soe B, Loeb A, et al. Boundary identification in EBSD data with a generalization of fast multiscale clustering. Ultramicroscopy, 2013, 133: 16-25. DOI:10.1016/j.ultramic.2013.04.009
[19]
Soheily-Khah S, Douzal-Chouakria A, Gaussier E. Generalized K-means-based clustering for temporal data under weighted and kernel time warp. Pattern Recognition Letters, 2016, 75: 63-69. DOI:10.1016/j.patrec.2016.03.007
[20]
原继东, 王志海, 孙艳歌, 等. 面向复杂时间序列的K近邻分类器. 软件学报, 2017, 28(11): 3002-3017.
[21]
方刚, 吴跃. 基于复合粒度计算的频繁模式挖掘研究. 计算机应用研究, 2016, 33(6): 1620-1624. DOI:10.3969/j.issn.1001-3695.2016.06.005
[22]
dos Alex JA, Gosselin PH, Philipp-Foliguet S, et al. Interactive multiscale classification of high-resolution remote sensing images. IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, 2013, 6(4): 2020-2034. DOI:10.1109/JSTARS.2012.2237013
[23]
徐信喆. 基于模糊K线序列比对的股市技术分析模型. 计算机应用与软件, 2010, 27(9): 28-32, 48. DOI:10.3969/j.issn.1000-386X.2010.09.011
[24]
柳萌萌, 赵书良, 韩玉辉, 等. 多尺度数据挖掘方法. 软件学报, 2016, 27(12): 3030-3050.
[25]
舒平达, 陈华辉. 支持多时间粒度的数据流上最频繁K项挖掘. 宁波大学学报(理工版), 2009, 22(4): 500-505. DOI:10.3969/j.issn.1001-5132.2009.04.011
[26]
康卓, 黄竞伟, 李艳, 等. 复杂系统数据挖掘的多尺度混合算法. 软件学报, 2003, 14(7): 1229-1237.
[27]
Bankó Z, Abonyi J. Correlation based dynamic time warping of multivariate time series. Expert Systems with Applications, 2012, 39(17): 12814-12823. DOI:10.1016/j.eswa.2012.05.012