时间序列模式挖掘

时间序列模式挖掘
时间序列模式挖掘

第6章时间序列和序列模式挖掘(讲稿)

6.1时间序列及其应用

时间序列(Time Series)挖掘是从大量的时间序列数据中提取人们事先不知道的但又是潜在有用的信息和知识,是数据挖掘中的一个重要研究分支,有广泛的应用价值。

近年来,时间序列挖掘在宏观的经济预测、市场营销、客流量分析、太阳黑子数、月降水量、河流流量、股票价格变动(长期的观察,有周期性)等众多领域得到应用。事实上,社会、科学、经济、技术等领域中广泛存在着大量的时间序列数据有待进一步的分析和处理。

时间序列数据挖掘通过研究信息的时间特性,深入洞悉事物进化的机制,是获得知识的有效途径。

从统计意义上来讲,所谓时间序列就是将某一指标在不同时间上的不同数值,按照时间先后顺序排列而成的数列。它可以是观察值也可以是记录值。

这种数列由于受到各种偶然因素的影响。往往表现出某种随机性,彼此之间存在着在统计上的依赖关系。虽然每一时刻上的取值或数据点的位置具有一定的随机性,不可能完全准确地用历史值来预测将来。但前后时刻的数值或数据点的相关性往往呈现某种趋势性或周期性变化----这是时间序列挖掘的可行性之所在。

时间序列挖掘通过对过去历史行为的客观记录分析,揭示其内在规律(如波动周期,振幅,趋势),进而完成预测未来行为等决策性工作。人们希望通过对时间序列的分析,从大量的数据中发现和揭示某一现象的发展变化规律或从动态的角度刻画某一现象与其他现象之间的内在数量关系,以掌握和控制未来行为。

简言之,时间序列数据挖掘就是要从大量的时间序列数据中提取人们事先不知道的、但又是潜在有用的与时间属性相关的信息和知识,并用于短期、中期或长期预测,指导人们的社会、经济、军事和生活等行为。

从数学意义上来讲,如果我们对某一过程中的某一变量进行X(t)观察测量,在一系列时刻t1,t2,…,t n(t为自变量,且t1

时间序列的研究必须依据合适的理论和技术进行,时间序列的多样性表明其研究必须结合序列特点来找到合适的建模方法。

一元时间序列:如某种商品的销售量数列等,可以通过单变量随即过程的观察获得规律性信息。

多元时间序列:如包含气温、气压、雨量等在内的天气数据,通过多个变量描述变化规律。时间序列挖掘需要揭示各变量间相互依存关系的动态规律性。

离散型时间序列:如果某一序列中的每一个序列值所对应的时间参数为间断点,则该序列就是一个离散时间序列。

连续型时间序列:如果某一序列中的每个序列值所对应的时间参数为连续函数,则该序列就是一个连续时间序列。

序列的分布规律:序列的统计特征可以表现平稳或者有规律的震荡,这样的序列是分析的基础点。此外如果序列按某类规律(如高斯型)的分布,那么序列的分析就有了理论根据

6.2时间序列预测的常用方法

时间序列分析是概率统计学中的一个新的分支,时间序列分析在经济统计和预测技术中占有重要地位。它的起源由研究经济中的价格变动而引发。时间序列分析的一个重要应用是预测,时间序列预测法就是通过编制和分析时间序列,根据时间序列所反映出来的发展过程、方向和趋势,进行类推或延伸,借以预测下一段时间或以后若干年内可能达到的水平。其内容包括:收集与整理某种社会现象的历史资料;对这些资料进行检查鉴别,排成数列;分析时间序列,从中寻找该社会现象随时间变化而变化的规律,得出一定的模式;以此模式去预测该社会现象将来的情况。为了对时间序列预测方法有一个比较全面的了解,我们首先对时间序列预测的主要方法加以归纳。

6.2.1确定性时间序列预测方法

对于平稳变化特征的时间序列来说,假设未来行为与现在的行为有关,利用属性现在的值预测将来的值是可行的。例如,要预测下周某种商品的销售额,可以用最近一段时间的实际销售量来建立预测模型。

对于具有明显季节变动的时间序列来说,需要先将最近的观察值去掉季节性因素的影响产生变化趋势,然后结合季节性因素进行预测。

一种更科学的评价时间序列变动的方法是将变化在多维上加以综合考虑,把数据的变动看成是长期趋势、季节变动和随机型变动共同作用的结果。

长期趋势:随时间变化的、按照某种规则稳步增长、下降或保持在某一水平上的规律。

季节变动:在一定时间内(如一年)的周期性变化规(如冬季羽绒服销售增加)。

随机型变动:不可控的偶然因素等。

设T t表示长期趋势,S t表示季节变动趋势项,C t表示循环变动趋势项,R t表示随机干扰项,y t是观测目标的观测记录。则常见的确定性时间序列模型有以下几种类型:加法模型:y t= T t +S t + C t + R t。

乘法模型:y t= T t·S t·C t·R t。

混合模型:yt = Tt·St + Rt 或yt = St + Tt·Ct·Rt

虽然这种确定性时间序列预测技术可以控制时间序列变动的基本样式,但他对随机变动因素的分析缺少可靠地评估方法。实际上,随机性波动尽管可能由许多偶然因素共同作用的结果,但也是有规律可循的。

6.2.2随机时间序列预测方法

通过建立随机模型,对随机时间序列进行分析,可以预测未来值。若时间序列是平稳的,可以用自回归(Auto Regressive,简称AR)模型、移动回归模型(Moving Average,简称MA)或自回归移动平均(Auto Regressive Moving Average,简称ARMA)模型进行分析预测。

6.2.3其他方法

可用于时间序列预测的方法很多,其中比较成功的是神经网络。由于大量的时间序列是非平稳的,因此特征参数和数据分布随着时间的推移而变化。假如通过对某段历史数据的训练,通过数学统计模型估计神经网络的各层权重参数初值,就可能建立神经网络预测模型,用于时间序列的预测。

每一种方法都是来源于实践,时间序列分析方法也是如此。1927年数学家耶尔(Yule)为了预测市场变化的规律,提出的自回归(Autoregressive)模型,标志着时间序列分析方法的产生。接着1931年瓦尔格(Walker)在自回归(AR)模型的启发下,建立了滑动平均(Moving Average)模型及自回归滑动平均(Autoregressive Moving Average)模型。20世纪70年代博克斯(Box)与詹金斯(Jenkins)在《Time Series Analysis:Forecasting and

Control 》(《时间序列分析:预测与控制》)―书中正式提出了时间序列分析法,并指出理论上它适用于各种领域的时间序列分析。下面我们就来看一看各个具体模型。 6.3基于ARMA 模型的序列匹配方法

ARMA 模型(特别是其中的AR 模型)是时序方法中最基本的、实际应用最广的时序模型。早在1927年,G . U. Yule 就提出了AR 模型,此后,AR 模型逐步发展为ARMA 模型、多维ARMA 模型。ARMA 通常被广泛用于预测。由于ARMA 模型是一个信息的凝聚器,可将系统的特性与系统状态的所有信息凝聚在其中,因而它也可以用于时间序列的匹配。 6.3.1 基本概念 1、ARMA 模型

X 在t 时刻的取值

不仅与其前n 步的各个值步的各个干扰 有关(ARMA (n ,m )模型:

其中 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 )。

可用于时间序列预测的方法很多,其中比较成功的是神经网络。由于大量的时间序列是非平稳的,因此特征参数和数据分布随着时间的推移而变化。假如通过对某段历史数据的训练,通过数学统计模型估计神经网络的各层权重参数初值,就可能建立神经网络预测模型,用于时间序列的预测。

从上面模型的形式可以看出,AR 模型描述的是系统对过去自身状态的记忆,MA 模型描述的是系统对过去时刻进入系统的噪声的记忆,而ARMA 模型则是系统对过去自身状态以及各时刻进入的噪声的记忆。 6.3.2 利用基本概念建立模型

解决问题的首要任务是建立序列对应的ARMA 模型,然后通过构造判别函数来进行序列的相似性判断。如果从计算速度的要求上来看,建立AR 模型是一种经济的选择。

建立AR 模型最常用的方法是最小二乘法。具体方法如下: 对于AR(n)模型,有

m t t t ---ααα ..., , ,21t j t j m j i t i n i t x x ααθ?+-=-=-=∑

∑1

1j t j m j t t x -=∑

-=αθα1

0=j θ0=i ?t

n t n t t t x x x x α???++++=---...2211)

,0(~ 2a t NID δα),0(~ 2

a t NID δαt i t i n

i t x x α?+=-=∑

1),0(~ 2a t NID δα)

,0(~ 2a t NID δα

其中 ,即可以用以下线性方程组表示:

……

或者写成如下矩阵型式: 其中

根据多元线性回归理论,参数矩阵φ的最小二乘估计为:

补充:对于变量间的相关关系,我们可以根据大量的统计资料,找出它们在数量变化方面的规律(即“平均”的规律),这种统计规律所揭示的关系就是回归关系

最小二乘法的基本原则是:最优拟合直线应该使各点到直线的距离的和最小,也可表述为距离的平方和最小。

6.3.3 构造判别函数

根据上面的模型,我们可以获得待测序列的参数模型φx ,同样我们也可以得到序列数据库中的其他序列Y i 的参数模型φyi 。φx 和φyi 都是n 维向量,故均可视为n 维空间上的点,从而序列的相似性问题就归结为n 维空间R n 中的距离问题。因此,我们下面简单介绍几种基于距离的判别函数。 1. Euclide

假设φx 表示待检模型,φy 表示参考模型,那么序列的相似性查找问题可以转化为两者的Euclide 距离计算。表示如下:

如果待检模型月某个参考模型的Euclide 距离最小,则它和这个参考序列最相似。 Euclide 的最大缺陷是未考虑模式向量φ中各元素重要性的不同,即将φ中的所有φi 均等对待。为了克服这一缺陷,可将Euclide 距离进行加权处理,加权后的Euclide 函数形式为:

其中W 为相应的加权矩阵。

)()(),(2Y X T Y X Y X E D ??????--=)

()(),(2Y X T Y X Y X w W D ??????--=1

11211...+-+++++=n n n n n x x x x α???222112...+++++++=n n n

n n x x x x α???N

n N n N N N x x x x α???++++=---...2211α

?+=x y T N n x x x y ] ... [ 2n 1++=T

n ] ... [2 1????=T n n ] ... [N 2 1αααα++=????????????=---+-n N N N n n n n x x x x x x x x x x ... ...

... ... ... 2 12111 y x x x T

T 1)(-=?

2. 残差偏移距离判别

其中 是待检序列的协方差矩阵,N 表示待检序列的长度。 3.Mahalanobis 距离判别

其中 是参考序列的协方差矩阵。 4.Mann 距离判别

其中, 为待检序列的协方差矩阵, 为待测时序的方差

上面介绍的四个距离函数,从其几何距离形式上看,其实质都是加权的Euclide 距离函数,只不过是形式不同而已。Euclide 距离权矩阵是单位矩阵I 。残差偏移距离的权矩阵是待检序列的协方差矩阵。Mann 距离中还包括待测时序的方差这一特性,所以其判别能力一般比残距离强。

基于离散傅里叶变换的时间序列相似性查找

概述:

1) 问题的提出:目前的时间序列挖掘研究中,时间序列的快速查询以及相应得存取结构 设计成为主要的问题。

研究目的:在海量的数据中根据给定的模式,查找出与之相似或相同的数据。 与以前的查找之间的变化: 以前:侧重于精确的查找。

当前:由于数据量的增加,因此要求具有相似性查找能力。

难点:在大数据量的时间数据库中发现两个模式相似的序列,手工处理很难胜任这样的工作,传统的数据库查找也难以完成此类任务,因此基于时间序列的相似性数据挖掘算法已成为一个新的研究方向。

相似性评价准则

1)相似性评价的方法

给定一个相似性评价函数和一个阈值ε,如果函数值小于等于ε ,则表明序列相似。

2)评价函数的选取 通常采用X 与Y 之间的距离函数D(X,Y)作为序列X 与序列Y 的相似判决函数。 3)距离函数举例 欧式: D (X,Y) =

其他的距离

如第五章介绍的, 明克夫斯基距离(Minkowski )

)()(),(2Y

X X T Y X Y X r N D ?

?????α--=)()(),(22

X Y X T X Y X X Y Mn r N D ????δ??--=X r X r

X r 2

X δ

)()(),(2

2Y X Y T

Y X Y

Y X Mh r N D ????δ??--

=

二次型距离 余弦距离

3..相似性匹配的分类

完全匹配(Whole Matching ) 给定N 个序列 Y1,Y2,乧Yn 和一个待查询的序列 X ,这些序列具有相同的长度,如果存在D (X ,Yi )≤ e ,那么我们称X 与Yi 完全匹配

2)子序列匹配(Subsequence Matching )给定N 个具有任意长度的序列Y1,Y2,....Yn 和一个待查询的序列X 以及参数e 。子序列匹配就是在Yi(1≤i≤N) 上找到某个子序列,使这个子序列与X 之间的距离小于等于e 。

4. 完全匹配步骤: 1) 特征提取 对于给定时间序列X={xt|t =0,1,2,…,n -1},对X 进行离散傅里叶变换,得到

2) 首次筛选

根据parseval

理论,时域能量谱函数与频域能量谱函数相同,由此得到 衡量两个序列是否相似的一般方法是用欧式距离。如果两序列的欧式距离小于ε ,则认为两序列

相似,即满足如下公式

按照parseval 理论,下面的公式也成立: 对于大多数序列来说,能量集中在傅里叶变换后的前几个系数,也就是说信号的高频部分相对来

说并不重要。因此我们取前fc 个系数,即

所以:

10

1/

exp(2/)0,1

,...,1f t n t X x i ft n f n π-==-=-22

X Y X Y

-≡- 1

22

2

n f f f X Y x y e -=-=-≤∑

1

22

20n f f f X Y x y e -=-=-≤∑

11

222

00c f n f f f f f f x y x y e --==-≤-≤∑∑

1

22

0c f f f

f x y e -=-≤∑

结论:

所以首次筛选所做的工作就是,从提出特征后的频域空间找出频域空间中满足上面

式的序列,这样就过滤掉一大批与给定序列的距离大于给定距离的序列。

3)最终验证

在首次筛选后,由于只是考虑了前面几项的傅里叶系数,所以并不能保证剩余的序列就相似。因此,还需要进行最后的验证。即,计算每个首次被选中的序列与给定序列在时域空间上的欧式距离,如果两个序列的欧式距离小于或者等于给定的值,则接受该序列,否则拒绝。

备注:实践表明上述方法非常有效,通常只需取1-3个系数就可达到很好的效果,随着序列数目

的增加和序列长度的增加执行效果更好。

.子序列匹配

1)目标

在n个长度不同的序列Y1,Y2,…,Yn 中找到与给定查询序列X相似的子序列。

2)方法

滑动窗口技术是实现子序列匹配的一种成功方法,该方法是通过设定滑动窗口,不需要

对整个序列进行特征提取,而是对滑动窗口内的子序列进行特征提取。滑动窗口的长度

视查找长度而定。

3)方法的特点分析

特征空间上的点远远大于原来的序列数据库,几乎序列上的每个点都对应f维空间上的一个点,带来索引困难。

4)解决办法

可以只取前fc个傅里叶系数,每个傅里叶系数都有一个模,这样fc个系数就有fc个模,把fc个模映射到fc维空间,这样每个滑动窗口对应的序列就会转化为fc维空间上的点。由于相邻窗口内的序列内容非常相似,故而得到的模的轨迹应该很平滑。

5)加快查找的方法

首先,将模的轨迹分成几段子轨迹,每一段用最小的边界矩形MBR(Minimum Boundary

Rectangle )来代替。用R*树来存储和检索这些MBR。

将轨迹转化成MBR的方法:

根据一个事先给定的长度来划分轨迹。

用一些简单函数来划分(如:Len(s)1/2)。

自适应法(Christos给出贪心算法)。

Christos贪心算法:

以模的轨迹的第一个的点和第二个点作为基准建立第一个MBR(此时的MBR仅包含两个点),计算出边界代价函数值mc,然后考虑第三个点,并计算新的边界代价函数值mc,如果mc增大,则开始另外一个MBR,否则把这个点加入到原来的MBR中,继续。

代价函数:

当如果查找长度正好等于ω, 待查找序列X 被映射为fc 维特征空间上的点X‘,查找结果是以X’为中心的,ε为半径 的球体。

当如果查找长度大于W , 因为从R*树上只能索引到长度等于W 的子序列。 解决方法 前缀查找 二分查找

问题:傅里叶变换较好的解决了时间序列的完全匹配和子序列匹配的问题,但是该法没有考虑到序列的取值问题,例如有些情况下两个序列的取值相差非常大,而变化趋势却很相似。因此,在比较这两个序列是否相似之前,应该适当的做些偏移变换和幅度调整

时域(时间域)——自变量是时间,即横轴是时间,纵轴是信号的变化。其动态信号x (t )是描述信号在不同时刻取值的函数。

频域(频率域)——自变量是频率,即横轴是频率,纵轴是该频率信号的幅度,也就是通常说的频谱图。频谱图描述了信号的频率结构及频率与该频率信号幅度的关系。

对信号进行时域分析时,有时一些信号的时域参数相同,但并不能说明信号就完全相同。因为信号不仅随时间变化,还与频率、相位等信息有关,这就需要进一步分析信号的频率结构,并在频率域中对信号进行描述。

动态信号从时间域变换到频率域主要通过傅立叶级数和傅立叶变换实现。周期信号靠傅立叶级数,非周期信号靠傅立叶变换。

6.5 基于规范变换的查找方法

由于现实世界中大多数应用无法确保匹配的子序列能够沿时间轴完美地排放。这样各匹配子序列之间就存在不匹配的空隙,需要对它们进行缩放和转换。

Agrawal 认为在比较序列时序时应该考虑噪音,幅度,和偏移问题。

121()/,()(0.5),(,,...,)n i n i mc DA L k DA L L L L L L ===+=∏

基于上图讲解关于噪音,幅度,和偏移的问题。

(有两个序列,首先忽略他们之间有差距的部分,再调整T的偏移量使其能在垂直线上能与S对齐,然后再缩放两个序列振幅的比例,最后观察两个序列匹配的长度与总长度之间的比例是否达到了一定的阈值)Agrawal法思想:

如果两个序列有足够多的,不相互重叠的,按时间顺序排列的,相似的子序

列,则这两个序列相似。

通过以上的定义介绍Agrawal 对相似性的定义。

对Agrawa的相似性比较问题可以分为三个子问题:

? 1. 原子序列匹配(Atomic Matching):找出所有无间隙的较小相同窗口对。

? 2. 窗口缝合(Window Stitching):把相同窗口结合,形成大的相似子序列对,其中允许在原子匹配间有间隙。

? 3. 子序列排序(Subsequence Ordering) :线性排列子序列匹配,以判定是否存在足够大的相似片段。

窗口缝合部分可用下列图来解释:

6.6序列挖掘

序列模式简介:

?序列模式的概念最早是由Agrawal和Srikant 提出的。

?动机:大型连锁超市的交易数据有一系列的用户事务数据库,每一条

记录包括用户的ID,事务发生的时间和事务涉及的项目。如果能在其中挖掘涉及事务间关联关系的模式,即用户几次购买行为间的联系,

可以采取更有针对性的营销措施。

举例说明:

事务数据库实例

?例:一个事务数据库,一个事务代表一笔交易,一个单项代表交易的

商品,单项属性中的数字记录的是商品ID

序列数据库:

?一般为了方便处理,需要把数据库转化为序列数据库。方法是把用户

ID相同的记录合并,有时每个事务的发生时间可以忽略,仅保持事务间的偏序关系。

在实例中讲解项集,K-序列,频繁序列,最大序列等概念。

接下来分五个具体阶段来介绍基于上面概念发现序列模式的方法。这些步骤分别是排序阶段、大项集阶段、转换阶段、序列阶段以及选最大阶段。

1. 排序阶段

对数据库进行排序(Sort),排序的结果将原始的数据库转换成序列数据库(比较实际可能需要其他的预处理手段来辅助进行)。例如,上面介绍的交易数据库,如果以客户号(Cust_id)和交易时间(trans-time)进行排序,那么在通过对同一客户的事务进行合并就可以得到对应的序列数据库。

2. 大项集阶段

这个阶段要找出所有频繁的项集(即大项集)组成的集合L。实际上,也同步得到所有大1-序列组成的集合,即{ | l L}。

在上面表6-2给出的顾客序列数据库中,假设支持数为2,则大项集分别是(30),(40),(70),(40,70)和(90)。实际操作中,经常将大项集被映射成连续的整数。例如,上面得到的大项集映射成表6-6对应的整数。

当然,这样的映射纯粹是为了处理的方便和高效。

3. 转换阶段

在寻找序列模式的过程中,我们要不断地进行检测一个给定的大序列集合是否包含于一个客户序列中。

表6-7给出了表6-2数据库经过转换后的数据库。比如,在对ID号为2的客户序列进行转换的时候,交易(10,20)被剔除了,因为它并没有包含任何大项集;交易(40,60,70)则被大项集的集合{(40),(70),(40,70)}代替。

4. 序列阶段

利用转换后的数据库寻找频繁的序列,即大序列。

5. 选最大阶段

在大序列集中找出最长序列。

相关文档
最新文档