基于数据流的挖掘算法研究

第一章 绪论

1.1数据挖掘的概述

随着数据库技术、信息技术的迅速发展以及数据库管理系统的广泛应用,人们积累的数据量急剧增长。面对如此大规模的海量数据,人们可以利用它们处理繁琐的日常事务,但同时又给人们带来了很多的不便。如:信息量过大难以消化问题、信息安全问题、信息存储问题等。所以人们开始考虑这些大量数据的背后必然隐藏着许多有价值的知识,因此人们希望对这些数据进行更高层次的决策分析与研究,以便更好地利用这些数据,以达到实时作出决策的目的。当前的数据库管理系统的数据存取、查询、描述统计等技术已日益成熟,但始终无法发现隐含在数据中的有价值的信息,缺乏从数据中挖掘出有趣知识的手段和技术,导致了数据丰富而知识贫乏难以获取的现象。数据挖掘(DM,DataMining)出现于20世纪80年代后期,到了90年代有了突飞猛进的发展,并有望在新千年继续繁荣。数据挖掘是一个新兴的、飞速发展的领域。随着人们对数据挖掘技术的深入研究,数据挖掘技术必将在更加广泛的领域得到应用与发展。数据挖掘作为一种有效的知识发现手段,可以从大量的无序数据中发现知识,提取规则,用以帮助人们做出实时决策。

1.1.1 数据挖掘的定义

数据挖掘(Data Mining,DM) 是从存储在数据库、数据仓库或其他信息库中的大量数据中挖掘有趣知识的过程,这些知识是隐含的、事先未知的、潜在的有用信息。从技术角度看,数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程;从商业角度看,数据挖掘是一种新的商业信息处理技术,其主要特点是对商业数据库中的大量业务数据进行抽取、转换、分析和其他模型化处理,从中提取辅助商业决策的关键性数据。数据挖掘是一个多学科领域,从多个学科汲取营养。它从一个新的角度把数据库技术、人工智能、机器学习、神经网络、统计学、模式识别、知识库系统、知识获取等领域结合起来,从更深层次挖掘存在于数据内部新颖、有效、具有潜在效用的乃至最终可理解的模式。数据挖掘还有另一个常用的术语——数据库中的知识发现(KDD)。

1.1.2 数据挖掘的对象

数据挖掘技术从兴起到发展的十几年间,主要面对的挖掘对象都是以结构化数据为主的关系数据库和数据仓库。但随着数据库技术和Internet技术的迅速发展,大量的复杂类型的数据不断涌现,恰恰正是在这些数据里隐含了更具价值的知识和信息。因此,数据挖掘对象的进一步发展就是针对复杂类型数据的挖掘。复杂类型数据的挖掘主要包括:空间数据挖掘、多媒体数据挖掘,时序数据挖掘,文本数据挖掘,Web数据挖掘,流数据挖掘。

(1)空间数据挖掘

空间数据挖掘(spatial data mining),是指对空间数据库中非显式存在的知识空间关系或其它有意义的模式等的提取。

(2)多媒体数据挖掘

多媒体数据挖掘(multimedia data mining),主要是指对多媒体数据库中多媒体数据的相似性搜索,多维分析,分类和预测分析,以及多媒体数据的关联挖掘。

(3)时序数据挖掘

时序数据挖掘(time-series data mining),主要指对时序数据库中时序数据的趋势分析,相似性搜索,与时间有关数据的序列模式挖掘和周期模式挖掘。

(4)文本数据挖掘

文本数据挖掘(text data mining),当数据挖掘的对象完全由文本这种数据类型组成时,这个挖掘过程就称为文本数据挖掘。

(5)Web数据挖掘

web数据挖掘(Web mining),是将数据挖掘技术应用于web,以实现对Web存取模式、Web结构和规则,以及动态的Web内容的查找。一般将Web挖掘分为三类:web内容挖掘(Web content mining),Web结构挖掘(web strueture mining)和Web使用记录的挖掘(Web usage mining)。值得一提的是XML技术的出现,不仅为互联网上的电子数据交换提供了一个标准,而且XML技术从数据的角度提供了一个更好地表示数据内容以及数据所代表的意义的手段。因此,基于XML技术进行数据挖掘为数据挖掘的研究提供了新的契机。对于Web数据挖掘的研究也逐渐与XML结合起来。

(6)流数据挖掘

流数据挖掘(streamingdatamining),在数据挖掘和数据分析研究领域中,出现了一个新的研究方向,即流数据的挖掘与分析。流数据是指那些数据量非常巨大的,无法全部存放在存储介质上进行分析和计算的数据。其特点是数据持续到达,且速度快、多变化、规模宏大;其研究核心是设计高效的单遍数据集扫描算法,在一个远小于数据规模的内存空间里不断更新一个代表数据集的结构,使得在任何时候都能根据这个结构迅速获得近似查询结果。

1.1.3 数据挖掘的主要步骤

数据挖掘的主要步骤如下:

(l)问题定义

数据挖掘是为了在大量数据中发现有用的令人感兴趣的信息,因此发现何种知识就成为整个过程中第一个也是最重要的阶段。在问题定义的过程中,一方面明确实际工作对数据挖掘的要求,另一方面通过对各种学习算法的对比来确定可用的学习算法。

(2)数据准备

数据准备又可分为三个子步骤:数据选取、数据预处理和数据变换。

数据选取的目的是确定发现任务的操作对象,是根据用户的需要从原始数据库中抽取一组数据;数据预处理一般包括消除噪声、推导缺失值、消除冗余数据、完成数据类型的转换等;数据变换的主要目的是消减数据的维数,即从初始特征中找出真正有用的特征,以减少数据挖掘时要考虑的特征或变量个数。

(3)数据挖掘

它是数据挖掘算法的执行阶段,也是技术难点所在。首先根据对问题的定义明确挖掘的任务或者目的,如分类、聚类、关联规则发现或序列模式发现等。确定了挖掘任务后,就要决定使用什么样的算法,选取相应

(4)结果解释和评估

数据挖掘的结果有些是有实际意义的,而有些是没有实际意义或没有价值的,或是与实际情况相违背的,这就需要对结果进行评估。评估可以根据用户多年的经验,也可以直接用实际数据来验证模型的准确性,进而调整挖掘模型,不断重复数据挖掘和模型构建过程。

 (5)分析决策

数据挖掘的最终目的是辅助决策,决策者可以根据数据挖掘的结果,结合实际情况,调整竞争策略等。

数据挖掘是一个多步骤的处理过程,步骤之间相互影响,反复调整,形成一种螺旋式上升过程。只有这样才有可能达到预期的效果。

1.1.4 数据挖掘的方法及应用

数据挖掘的分析方法主要有关联分析、聚类分析、分类分析、预测分析、序列分析、偏差分析等。

(1)关联分析

关联分析是寻找数据库中值的相关性,即寻找在同一个事件中出现的不同数据项的相关性,比如一次购买活动中所买不同商品的相关性。关联规则可以记为A B,A成为前提,B成为后续,反映A中的项目出现时,B中的项目也跟着出现的规律。关联分析属于数据挖掘研究领域一个比较成熟的分支,人们提出了多种关联规则的挖掘算法,如Apriori、STEM、AIS、DHP等算法。

(2)序列分析

与关联分析相似,序列分析的目的也是为了挖掘数据项之间的联系,但序列分析的侧重点在于分析数据项之间在发生时间上的前后关系。序列规则也可记为A、B,表示A发生以后将会发生B。序列模式分析描述问题的过程是:在给定的事件序列数据库中,每个序列都是按照事件发生时间排列的一组交易集,将挖掘序列函数作用在这个事件序列数据库上,然后返回该数据库中出现的高频序列。

序列规则的研究基本与关联规则同步,各种算法也基本上是对各种关联规则挖掘算法的修改。

(3)分类分析

分类要解决的问题是为一个事件或对象归类。在使用上,既可以用此模型分析已有的数据,也可以用它来预测未来的数据。例如,用分类来预测哪些客户最可能对直接邮件推销做出回应。

分类分析是通过分析己知分类信息的历史数据总结出预测模型。这里用于建立模型的数据称为训练集,通常是已经掌握的历史数据。训练集也可以是通过实际的实验得到的数据。

(4)聚类分析

聚类是把整个数据库分成不同的群组(cluster)。它的目的是要使群与群之间的差别很明显,而同一个群之间的数据则尽量相似。与分类不同,在开始聚类之前我们并不知道要把数据分成几组,也不知道怎么分(依照哪几个变量)。因此在聚类之后要有一个对业务很熟悉的人来解决这样分群的意义。在很多情况下,一次聚集得到的分群对于特定的业务来说可能并不好,这时需要删除或增加变量以影响分群的方式,经过几次反复之后才能最终得到一个理想的结果。神经元网络和K—均值是比较常用的聚类方法。

1.2 时间序列数据挖掘的进展

传统的时间序列分析已是一个发展得相当成熟的学科,有着一整套分析理论和分析工具,是目前时间序列分析的主要方法。传统时间序列分析的研究目的在于:

(1)预测时间序列的未来发展情况。

(2)分析特定的数据集合,建立数学模型,进行模式结构分析和实证研究。

传统时间序列分析最基本的理论基础是40年代分别由Norbor Wiener和Andrei Kolmogomor提出的。20世纪70年代,G.P.Box和G.M.Jenkins发表专著《时间序列分析:预测和控制》,对平稳时间序列数据提出了自回归滑动平均模型(ARMA),以及一整套的建模、估计、检验和控制方法,使时间序列分析得以广泛运用于各种工程领域。

目前,面向工程应用的时间序列分析主要存在两种不同的分析方法和发展路线。一种是频域法,强调谱密度和时间序列谱分析,主要是时间序列做非参数描述,较多地应用与工程物理学科,在经济学领域也有一定的应用。另一种方法是时域法,主要采用相关函数的方法处理随机过程,如用ARMA参数模型拟合观测序列并进行相关分析,更复杂的是用传递函数模型和多元ARMA模型来拟合观测值。其中,最常用也是最重要的依赖模型是ARMA模型,它是AR和MA模型的混合。

然而,大部分时间序列分析方法都是假定存在一类数据序列和可用于该类数据的某种数据结构,然后以此为基础进行推广。通常需要假定序列是平稳的或可以通过某些基本方法使之平稳化。例如,当采用ARMA模型来拟合一个非平稳时间序列时,一般先通过差分法或适当的变换使非平稳序列转化为平稳序列,然后再估计模型的结构参数。用这种参数化方法将时间序列拟合为某种特定的结构,只用到很少的参数,从而使参数的有效估计成为可能。当然,用非参数的谱分析的方法也能使用较少的观测值进行分析,但是时域参数化方法提出了一种更加实用的方法,即从一个序列的历史数据出发,直接进行分析,找出其数据特征,并构造出其模型,再利用模型对该序列的未来进行预测。

在利用传统的统计模型对实际序列进行拟合时经常会遇到两类处理的问题。一个问题是所观测的时间序列往往很少注重,只能获得这些序列在某一段时间内的一次实现。这样在构造一个时间序列 。( 为随机变量)的统计模型时,只能得到 的一次观察。这与通常的基于统计模型的分析方法所要求的并不一致。另一个问题上,对于许多现实世界的时间序列来说,其系统结构本身经常是随时间变化的,因而也不满足通常的统计分析方法中关于模型结构不变的假定。

上述问题促使人们开始从其他方面寻求一些方法来补充传统时间序列分析方法中不足,其中,基于局部模型的分析方法在很多场合被证明是有效的,这促进了一系列关于时间序列局部分析方法的研究。时间序列中静态模式的挖掘研究就是这类研究的一个重要组成部分。

自进入上世纪90年代以来时间序列的数据挖掘技术有了快速发展。由最初相似性的分析到目前的人工智能的多学科交叉研究,时间序列的数据挖掘技术已经有了多个研究方向,主要包括相似性的研究和模式挖掘的研究等,分述如下。

(1)相似性搜索

时间序列数据的相似性搜索问题最早由IBM公司的Agrawal等人于1993年提出,该问题描述为“给定某个时间序列,要求从一个大型时间序列数据库中找出与之最相似的序列”[1]。这与找出符合查询的精确数据的通常的数据库查询是不同的。由于实际需要的驱动,使得在时间序列的数据挖掘研究中,相似性搜索是一个重要的研究内容。在相似性搜索的基础上又发展出了时间序列的聚类、分类、以及关联规则的抽取等等数据挖掘技术。

相似性搜索首先要解决的问题是相似性的定义。相似性就是指测定两个给定的时间序列是否为具有相似的行为曲线。但困难地方是时间序列往往是来自于实际,这使得相似性的测量要求并不是完全严密的,而且时间序列数据库来自于各个领域,测量标准也不尽相同。而相似性度量模型则是依据所定义的相似性进行数学抽象而成。在相似性定义方面,有比较简单粗糙的,如Agrawal等人提出的一种相似性,它是根据直观意义上时间序列数据的上升、下降的趋势定义的,通过这种相似性可以比较粗糙地从数据库中发现具有相似形状的时间序列。后来Agrawal等又提出一种 -相似性度量模型,这种相似性可以容忍时间序列中噪声的存在而引起的局部不匹配,并对时间轴上的偏移以及幅值的缩放不敏感。有的相似性定义则比较复杂,例如GautamDas等提出的一种称为F-相似的相似性模型:设F是一个函数集,对于两个待比较的时间序列而言,如果它们满足一定长度要求的子序列,且存在F中的一个函数f使得其中的某个子序列可以近似的映射到另一个子序列,则称两个时间序列具有F-相似。这种相似性对异常点(outhers)、基线以及比例因子不敏感。

相似性的测量方法包括欧几里德距离测量方法、C-S.Li等提出的相关性测量和动态时间弯曲法DTW等。其中欧几里德距离测量方法是一个基本的、简单的测量方法,多数研究也都是基于欧几里德距离的。为了提高相似计算的效率同时又不会丢失原有的信息,人们又提出对时间序列进行重新描述,经过多年的努力,先后出现了许多面向相似性搜索的时间序列近似表示方法。

本文将在文章的第四部分对时间序列的相似性搜索挖掘做进一步的介绍。

(2)模式挖掘

模式挖掘主要包括时态模式挖掘和趋势预测。时态模式挖掘的一个主要技术是关联规则的挖掘。

①时态模式挖掘

在时态模式挖掘方面,M.chen等人[2],提出了一种具有比较好的包容性的时态模式挖掘的定义,其定义如下:

定义1.l(时态模式):一个时态模式是一个二元组<Patt,TimeExp>。其中Patt是一个一般意义上的模式,可以是趋势、偏差、分类规则和关联规则等,TimeExp就是一个时间表达式,它表示Patt在(TimeExp)中的每个时间区间内成立。

RiehardJ.povinelli对时间序列中的事件(Event)的出现加以模式发现和预测。他对相空间(phase spaces)采用时间延迟法(time-delayed embedding)进行重新构建,然后在相空间上定义了一种事件标志函数,寻找那些对于预测未来事件有用的点进行聚类形成时态模式,用这些时态模式进行事件的预测。GautamDaS[3]则通过在时间序列中挖掘局部模式(local pattern),从中抽取关联规则。他首先用一个时间窗口在时间序列上滑动形成子序列,然后通过相似性测量对子序列聚类,然后采用规则生成方法发现序列中模式的行为和时间的关系。

②趋势预测

趋势预测采用的技术主要是分类规则的挖掘技术,即Last.M[4]提出的首先对时间序列进行预处理,然后从中抽取关键的预测属性(predicting attributes),这些属性对时间序列的发展趋势影响较大,将其组成属性集,这些预测属性表征了时间序列的某种特性,这种特性与时间没有关系,因此可以采用普通的静态的数据挖掘工具对时间序列进行行为趋势的分类预测。

1.3 本文工作

在分析了国内外时间序列挖掘研究现状的基础上,本文分别详细讨论了时间序列的分段线性划分和时间序列的相似性度量两方面问题。时间序列数据的挖掘在近十几年已经成了数据挖掘中的一个热点。本文在时间序列分段划分上的创新工作是提出了一种新的基于关键点的时间序列分段划分方法。引入了“双阈值”概念来进行关键点的选取,实验表明:该方法能够在剔除噪音干扰的同时,精确定位单调序列中的突变转折点。接下来在分段划分选取高效关键点的基础上,本文在时间序列相似性度量上提出了一种基于关键值的动态时间弯曲距离的相似性度量方法。该方法在时间序列线性拟合的基础上,只保留序列中的关键点来用于弯曲距离矩阵计算,实验结果表明:这种方法在准确性上明显优于欧氏距离,与经典的动态时间弯曲距离相似,检索速度却有了极大的提高。

时间序列数据挖掘是一个有广泛发展前景和重大意义的科研课题,其中的任何一个分支都值得深入的探讨和研究,本文在此方面的研究仅是九牛一毛,但作者希望它能起到抛砖引玉的作用,以引起后来或者其他学者的兴趣,并希望对他们开拓思维有一定的贡献。本文的组织结构如下:

第一章:论述了数据挖掘的定义和分类,介绍了时间序列数据挖掘的进展,并简要介绍了本文主要的研究内容和研究成果。

第二章:介绍了时间序列挖掘的有关研究历史及现状,并简要介绍了时间序列的模式表示与相似性度量的研究进展。

第三章:主要介绍了时间序列的三种线性拟合方法:极值点拟合法、特征点拟合法和局部极值点法,讨论了它们各自的优缺点。提出了时间序列的双阈值关键点线性拟合表示方法,并与极值点拟合法和特征点拟合法两种线性拟合表示方法进行了比较。其中关键点的选取算法是本文的一个创新点。

第四章:介绍了欧几里德距离和动态时间弯曲距离两种常用的相似性度量方法,指出他们各自的优缺点。对分段极值DTW算法进行了改进,提出了基于关键点动态时间弯曲距离的相似性度量算法,从准确率和计算速度两方面与经典动态弯曲距离和分段极值DTW距离进行了比较。

第五章:对全文进行了总结,提出了下一步需要研究的工作,并对该发展方向进行了展望。


 

第二章 时间序列相似性挖掘研究现状及评述

如前所述,采用数据挖掘方法来揭示数据内部规律已经是时间序列分析的一个重要研究方向。这当中又由于实际的需要,使得相似性搜索挖掘成为时间序列数据挖掘研究中一个非常重要的研究内容。具体来讲,相似性搜索挖掘部分的研究包括相似性的度量和面向相似性搜索的时间序列表示方法等方面工作。本章将对时序数据相似性挖掘研究现状进行介绍,并在此基础上进行评述。

2.1 时间序列的定义

时间序列是指按时间变化的序列值或事件,时间序列数据库是指由随时间变化的序列值或事件组成的数据库。这些值或事件通常是在等时间间隔测得的。以数学方式表达为如下:

定义2.1:一个时间序列数据库是指一系列记录 ,N为序列值的个数,其中每个记录为m+1维数据,即 , 为特性值,可以是连续数据也可以是离散数据,而且可以是与时间有关联也可以没有。如果某特性值与时间有关,则该特性值为动态特性,否则为静态特性,一般时间序列的研究主要是针对动态特性 是一个时间间隔的标志,例如天、月、年等。

以股票每天的交易记录为例来说明上述定义, {600000,浦发银行,24.8,26.3,24.2,258,255105,62},其中600000是股票代码,浦发银行是股票名称,接下来的分别为当天的开盘价,最高价,最低价,收盘价,成交量以及第62个交易日。前两个特性显然与时间无关,为静态特性,而其他特性值是与时间密切相关的,是动态特性。很显然,对于静态特性研究的意义不大。

定义2.2:对于定义2.1中的特性值 可以定义为特性函数 ,其 是时间的函数,函数的系数可以从特性值 中得到,其函数表达为

                  ,其中                    (2-1)

一般对于时间序列的数据挖掘的研究往往集中于某个重要的单个特性值,如股票时间序列数据库中主要研究股票的每日收盘价,因为这是影响投资者决策行为的主要因素。

2.2 时间序列相似性的概念

时间序列相似性查询又称为相似性搜索,其目的是在时间序列数据库中查找与给定序列相似的时间序列。其查询对象是时间序列,查询方式属于 邻域查询。

定义2.3:(时间序列相似):给定时间序列 和 ,相似性阈值 ,若有: 则称时间序列 和 相似,记作 。其中, 为时间序列 和 之间的距离函数,也称为相似性度量函数。

定义 2.4:(时间序列相似性查询):给定一个查询序列 ,时间序列数据库 ,相似性度量函数 和阈值 ,时间序列相似性查询就是在 中找出所有与X相似的时间序列,其查询结果 为满足下列条件的时间序列的集合: 时间序列相似性查询分为全序列匹配和子序列匹配两种方式。

1)全序列匹配。查询序列和被查询序列的长度相同。

2)子序列匹配。在较长的时间序列中,找出与查询序列相似的子序列。上述给出的相似性定义根据时间序列全序列匹配定义的,子序列匹配与其类似。

 

2.3 相似性搜索的基本问题

时间序列的相似性搜索是时间序列的一个重要分析方法,它是指在时间序列数据库中找出与给定查询序列最接近的数据序列。它包含了全序列匹配和子序列匹配两种问题。全序列匹配就是找出彼此间相似的序列,而子序列匹配就是找出与给定模式序列相似的所有子序列,由于时间序列其自身数值上的连续性和波动性,造成了时间序列相似性查找的特有问题。

1.全序列匹配

全序列匹配中涉及的问题主要有:数据的预处理、相似性定义、时间序列的表示,索引结构。

1)数据的预处理:

a. 数据清理:在现实世界中,数据库中的数据极易受噪声影响、不一致数据的侵扰,在时间序列数据中,如果出现噪声,对数据处理的结果有很大的影响。目前的数据清理方法主要采用数据平滑技术。

b. 时间序列的归一化:在大多数的情况中,两个序列在形状和内容上的相似被认为是匹配的,而序列数据的绝对大小并不能作为相似判断的依据,为了消除数值的绝对大小对相似性度量结果的影响,可以采用归一化的方法对数据进行处理。目前常用的方法有均值规范化和最小-最大规范化等。

2)相似性定义:

相似性度量是一个主观性的问题,因为相似性的意义不仅依赖于用户想象,而且还依赖于目前分析的任务,甚至数据集本身。例如在金融领域中,相似性通常是指序列的相对运动,而不是绝对的数值;相反在医学领域中,即使是两个病人的波动情况相似,但温度差异很大,医生也认为它们是不相似的;还有在语音数据中,如果两个人先后说了同一个词,虽然有时间差,但我们还是认为它们是相似的,但在其他数据中我们就会得到相反的结论。目前时间序列相似性的度量主要有基于Euclidean距离度量、基于动态时间弯曲距离度量(Dynamic Time Warping,DTW)、以及最大公共自序列(Longest Common Subsequence,LCSS)等。

3)时间序列的表示

由于时间序列的数值性,造成直接的度量方法在一些应用中的不准确以及不方便,时间序列的表示方法被广泛采用。时间序列的表示是用一些符号或者统计的数据去表示序列本身,而忽略序列本身的实际数值。它能帮助我们在一个比较高的层次去分析和挖掘时间序列,在相似性度量中,新的表示之间的相似性作为度量的结果代替原序列之间的距离。目前的应用比较广泛的有符号表示等。

在表示中还有一类比较特殊的,称作时间序列的降维。降维是将长度为n的时间序列映射到k(k<n)空间中,用一个k维的向量来表示原序列,这样做一方面在一些情况下可以提高度量的精度,另一方面可以提高相似性查找的效率。目前常见的两个方法是离散傅立叶变换(Discrete Fourier Transform,DFT),离散小波变换(Discrete Wavelet Transform,DWT)。

4)索引结构

时间序列是一个任意长度的流式序列,而不是一个离散的元素,像图片和网页一样,这种数据流是潜在没有终点的,数据量非常大。例如美国的MACHCO工程,这个航天数据库包含了TBG的时间序列,而且每天以GB的数据增长。在这些存储在外存中的大规模数据中进行相似性查找是一个非常耗时的I/O过程,因此就需要非常有效的索引机制来提高检索的效率。此外与一般查询的要求一样,还必须保证时间序列索引查询必须是完备的。目前相似性的索引结构主要有基于空间的索引结构,如R树、B树等。

2.子序列匹配

时间序列的子序列匹配,除了有全序列匹配中涉及的问题外,还有它自身的问题:时间序列的超高维特性使得匹配结果的候选集非常大,即序列中任何一个时间点开始的任何长度的子序列都有可能是查询结果,从而使得子序列匹配中消耗过多的时间。目前对于符合三角不等式的度量方法(如Euclidean距离),通常采用多维空间索引等策略来加速查询数据,而对于不符合三角不等式的度量方法(如DTW,LCSS)等,通常采用变步长滑动方法,即每次不是滑动一个点,而可能是滑动多个点比较,或者lower-bounding技术。

3.符号序列

和时间序列密切相关(相似)的数据是符号序列,或者说符号序列是时间序列的一种。符号序列是由一组有特定含义的具有前后顺序的符号组成,如网络点击序描述了用户浏览网页的顺序,以及客户购物序列和DNA序列。同时时间序列相似的是它们都是由一组由顺序的数据构成,不同的是符号序列中每一个符号不一定对应一个时间点,如一个单词,而且一般来说,时间序列基本是由实数组成的。

2.4 时间序列相似性搜索的研究历史及现状

时间序列数据挖掘的目的就是从时间序列中检测出用户感兴趣的模式,这些模式可以帮助人们更好地认识时间序列中蕴含的规律,加深人们对系统或者现象的理解[5]。时间序列数据挖掘的许多技术来源于传统时间序列分析的理论与技术。两者的研究对象与目的也基本相似,即发现时间序列数据中蕴含的规律。所不同的是时间序列数据挖掘更加关注海量时间序列的处理技术且更加强调时间序列的形态特征,通常用形态特征来刻画时间序列中蕴含的规律,而传统时间序列分析技术通常用解析函数或者统计量刻画时间序列中蕴含的规律。

综合收集到的关于时间序列数据挖掘的文献资料,时间序列数据挖掘的研究任务主要为[6]:

(1)时间序列的拟合:由于时间序列的数据量庞大且数据类型及为复杂,直接在原始时间序列上进行数据挖掘不但效率低下,而且往往难以获得满意的结果。时间序列的拟合表示方法是对时间序列进行抽象和概括的特征表示方法,是在更高层次上对时间序列的重新描述。时间序列的拟合表示不但能够对时间序列数据进行压缩,而且突出了时间序列的模式变化特征。

(2)时间序列的划分:给定一个包含n个时间点的时间序列Q,构建一个模型,将Q分为K个部分(K<n)近似表示Q。分割有两个主要的应用,可以用于检测生成时间序列的系统发生的变化,即变化点检测;也可以用于创建时间序列的高级表示以便索引、聚类和分类。

(3)时间序列的相似性(不相似性)查询:给定一个时间查询序列Q以及某个相似性/不相似性度量D(Q,C),发现时间序列数据DB中与Q最匹配的那些时间序列。判断两个时间序列的相似程度需要一个测量时间序列相似性的距离度量方法。目前时间序列数据挖掘中用到的距离度量大致可以分为两大类:欧几里德距离和非欧几里德距离。

(4)时间序列的模式挖掘:模式挖掘是时间序列数据挖掘的重要研究内容之一,近年来相关研究成果不断涌现。针对不同的应用目的,人们试图从时间序列数据库中发现的模式也各不相同,如特定模式、频繁模式、周期模式、异常模式等。

(5)时间序列的可视化:时间序列可视化是时间序列数据挖掘中一个应用前景广阔的研究方向。一般来说,人们比较难于理解复杂的时间序列数据,而形象化了的数据则非常容易理解。因此有关这方面的研究近几年来也逐渐被时间序列数据挖掘研究领域的研究者们关注[7-9]

(6)时间序列的应用研究:时间序列数据广泛存在于现实世界的各个领域,因此时间序列数据挖掘的应用领域十分广泛。典型的应用包括:机电系统诊断[10,11]、生物信息学[12-14]、运动图像分析[15,16]、生产过程监测[17,18]、基于规则的时间序列预报[19]以及时间序列概括[20]等。

以下重点介绍时间序列的模式表示、时间序列的相似性度量二方面的研究工作。

2.4.1 时间序列的模式表示

由于时间序列数据挖掘的对象通常是连续的海量数据序列,其短期波动频繁、大量噪声干扰以及非稳态的特点使得直接采用原始时间序列进行相似性查询、索引、分类和聚类、时序模式挖掘等工作不但效率低下,甚至会影响时间序列数据挖掘的准确性和可靠性。因此,许多研究者提出了时间序列的模式表示方法,从更高层次上对时间序列重新进行描述和数据挖掘。

时间序列的模式表示方法主要可以分成基于变换和基于模型两种方法。其中,时间序列基于变换的基本思想是从时间序列中提取特征,将时间序列变换到特征空间,采用特征空间的特征模式来表示原始时间序列。时间序列的模式表示有两个优点:首先是通过压缩时间序列实现维度约简,提高数据挖掘工作的效率;其次时间序列的模式表示在保留时间序列主要特征的同时具有去噪音功能,更能反应时间序列的变化情况,提高数据挖掘的质量。这种方法主要包含四种类型:频域表示法、奇异值表示法、符号表示法以及分段线性表示法。

(1) 频域表示法

频域表示的基本思想是利用离散傅立叶变换(Diserete Fourier Transform,简称DFT)、KL(Karhunen-Loeve)变换或者离散小波变换(Diserete Wavelet Transform,简称DWT)将时间序列从时间域映射至频率域,用频谱来表示原始时间序列[21,22],通过频域变换有效解决了高维特征微量的降维问题。DFT方法是由Agrawal和Faloutsos[19]等提出的最早用于相似性查询的方法,其计算方便快捷,在变换过程中保证了特征抽取的完整性。利用较少的几个频率实现原始序列的近似表示,保持序列主要形态的同时实现了数据压缩。但该方法并不是对所有领域的时间序列都适用。由于平滑了原序列中局部极大值和局部极小值,导致了许多重要信息的丢失;对序列的平稳性也有较高要求,对非平稳序列并不适用。DWT同样作为一种线性信号处理技术,在很多领域已经证明比傅立叶变换有效,如计算机图像处理和语音处理等。但小波变换在针对时间序列相似性研究中与DFT相比并没有太大的优势。在时间序列数据库的相似性搜索中,基于DFT和基于DWT的不同技术相比并没有太大的差异,而且DWT在使用中还是存在很大的缺陷。

(2) 奇异值分解

奇异值分解法(Singular Value Decomposition, SVD)是由Korn等人提出的一种时间序列变换方法[23]。在统计学中,这种方法又称为主成份分析(PCA)或K-L变换,是一种基于统计概率分布的投影方法。SVD方法通过搜索 个最能代表数据的 维正交向量 ,使原来的数据被投影到较小空间,实现数据压缩,SVD 的方法已经成功地用于多媒体检索中。

在时间序列的模式表示中,SVD通过对整个时间序列数据库的整体表示实现对整个时间序列数据库的特征提取和压缩。尽管SVD线性变换方法在数据重构上误差最小,但其时间复杂度较高(O(MnZ)),这里M为时间序列数据库的大小,n是时间序列的平均长度。当增量加入时间序列数据或删除已有部分数据时,SVD方法需要重新计算,计算开销较大。

(3) 符号化表示

符号化表示的基本思想是,通过离散化方法将时间序列的实数值或波形映射到有限的符号表上,将时间序列表示为有限符号的有序集合,即字符串,然后利用字符串匹配和索引技术实现查询。许多相关文献对时间序列符号化表示方法展开了研究: 蒋嵘和李德毅等[24]用符号表示时间序列各段的变化趋势和形态,提出了云模型的时间序列形态概念树;毛红保等[25]提出了基于特征点的符号化相似性搜索方法。

符号化表示的优点在于可以利用许多字符串研究领域的成果,缺点在于如何选择合适的离散化算法,解释符号的意义,以及定义符号之间的相似性度量。

(4) 分段线性表示

展开阅读全文

没有更多推荐了,返回首页