在算法实践中,快速掌握时序数据的特征,估算出长期趋势、重复变化和循环变化的规律,将具有非常重要的意义。原因是它有助于选择合适的方法去做分析,并且有助于全面理解数据。通过对趋势、循环、季节和非规则成分的运动的系统分析,使人们可以在较合理的情况下,制定出长期或短期的预测(即预报时序)。
如何进行趋势分析
用于特化时序数据的四种主要变化成分:
长期或趋势变化
trend movement,它用于反映一般变化方向,其时序图是在较长时间间隔上的数据变化。这种变化反映为一种趋势曲线,或趋势线。确定趋势曲线或趋势线的典型方法包括加权移动平均方法和最小二乘法,详见下面的讨论。
循环运动或循环变化
cyclic movement or cyclic variations,主要指循环性,即趋势线或曲线在长期时间内呈摆动迹象,它可以是也可以不是周期性的。即在等时间间隔之间,循环不需要沿着同样的模式演进。
季节性运动或季节性变化
seasonal movements or seasonal variations,它反映的是每年都重复出现的事件,如情人节前巧克力和鲜花会的销量突然上升,或在圣诞节节前储藏商品的销售会突然增加。换句话说,季节性运动是指同一或近似同一的模式,在连续几年的有关月份期间重复出现。
非规则或随机变化
irregular or random movements,它反映的是随机或偶然事件零星时序变化,如劳工需求,洪水,或企业内发生的人事变动等。
以上有关趋势的,循环的,重复的,和非规则的运动,可以分别用变量 T,C,S,I 表示。时序分析也可以指将时序分解为以上四个基本运动的分析。时序变量 丫 可以表示为四个变量的积(即Y=T%C%S%I),或四变量之和。其选择通常是凭经验的。“对Y给定一组值(即,1,2,3....,如何确定数据的趋势?”确定趋势的常见方法是按算术平均式序列,计算 n 阶的移动平均值 (a moving average of order n)。
时序数据库也是种序列数据库。然而序列数据库是指中有序事件序列组成的数据库,它可以有时间标记,也可以没有。例如,Web 页面遍历序列是一种序列数据,但可能不是时序数据。本节将介绍时序数据库和序列数据库的挖掘的几种重要内容,包括趋势分析,相似搜索,序列模式挖掘和与时间有关数据的周期模式挖掘。
什么是相似搜索?
通常数据库查询是要找出符合查询的精确数据,相似搜索与之不同,它是找出与给定查询序列最接近的数据序列。子序列匹配(subsequence matching.是找出与给定序列相似的所有数据序列,而整体序列匹配 (whole sequence matching)是找出彼此间相似的序列。对金融市场的分析(如股票数据分析),医疗诊断(如心电图分析),和科学与工程数据库(如能量消耗分析) 等,时序分析中的相似搜索大有用武之地。
数据变换:从时间域到频率域
疑问一:为什么需要变换数据?
许多信号分析的技术需要数据来自频率域。因此,有关距离的正交变换经常用于从时间域到频率域的数据变换。通常,使用独立于数据的变换,其变换矩阵是预先确定的,与输入数据无关。两个常见的独立于数据的变换是离散傅立叶变换 (DFT) 和离散小波变换(DWT)29。由于在时间域中两个信号的距离与频率域中欧氏距离类似,所以 DTF 可以出色发挥,在头系数 (first few coeficients) 表现突出。通过仅保持 DFT 的头几个 (即,“最强的”) 系数,我们可以计算出实际距离的下限。
疑问二:一旦数据经过变换,比如 DFT,如何进行相似搜索?
为提高访问效率,可以用头几个傅立叶系数构造一个多维索引。当相似查询提交给系统,可以利用索引检索出与查询序列保持一定最小距离的序列。通过计算时间域序列和未满足查询的序列间的实际距离,可以进行必要的后处理postprocessing)。
疑问三:子序列匹配如何进行?
对子序列匹配,每一序列首先被分割为长度为 的窗口“片段”每个序列影射为特征空间的中一个“线索 (trail)”。对子序列分析,把每个序列的线索划分为“子线索(subtrail)”,每一个由最小边界矩形表示。利用多片组装算法 (multipiece assembly algorithm)可以搜索更长的匹配序列。