论文部分内容阅读
随着互联网、数据库和嵌入式技术的飞速发展,在现实应用中,商业、工程和科学等领域大量存在时序数据。时序数据挖掘关注从序列数据流中找出有意义的模式。频繁情节模式挖掘作为时序数据挖掘的常用框架,被成功应用于很多领域,例如网络监控、入侵检测、通信网络告警序列分析、通过web交互日志预测用户行为、挖掘商业事件与股票走势的关联、文本挖掘等。以往的研究提出了一些挖掘算法,这些算法的支持度定义多是基于滑动窗口和基于情节非重叠出现的。目前没有有效算法挖掘基于情节互异出现的频繁情节模式。本文针对基于情节互异出现的频繁情节挖掘问题展开了深入探讨。主要贡献包括:1)提出了一个事件流上的基于情节互异出现的支持度计数算法DOFC。频繁情节刻画了现实应用中用户或系统的行为。现有的频繁情节挖掘算法大多基于滑动窗口或情节非重叠出现来计算一个情节的支持度。这些算法都采用有限状态自动机来计算情节支持度。然而,现有算法在处理基于情节互异出现的支持度计数时,效率很低甚至无效,其原因是对每个频繁情节,需要同时维护很多个自动机实例来跟踪所有可能的状态转移,极端情况下,需要同时为每个情节维护无穷个自动机实例。为此,本文提出了一种包含状态计数的有限状态自动机模型(SCDFA),该模型通过为每个状态添加状态计数来合并处于同一状态的多个自动机实例,从而将可能同时维护多个自动机实例转化为维护一个包含状态计数的自动机实例,大大降低了时空消耗,高效实现了基于情节的互异出现支持度计数。理论分析和实验评估证明DOFC具有较高的挖掘效率和挖掘质量。21提出了一个事件序列上的基于情节互异出现的频繁情节挖掘算法SCTree。现有的频繁情节挖掘算法大多基于传统Apriori的逐层扫描框架,传统Apriori框架是基于广度搜索策略的,即需要先找出所有频繁K-情节,然后才能找出频繁K+1-情节。每次对K-情节进行支持度计数时均要扫描数据库,这加重了I/O代价。另外基于传统Apriori框架的频繁情节挖掘存在大量重复计算。一方面每层计算K-情节的支持度时存在重复计算;另一方面对K-情节的支持度进行的计算会在计算K+1-情节支持度时重复出现。大量的重复计算加重了CPU代价。为此,本文提出了一种包含状态计数的情节前缀树模型(SCTree),该模型扩展了包含状态计数的有限状态机,将同一情节候选集中的情节组织为一棵情节前缀树,树中每个节点引入状态计数来进行基于情节互异出现的支持度计数。SCTree模型实现了情节的前缀压缩,降低了空间代价,更重要的是通过前缀压缩,可以大大减少每层支持度计算中的重复计算。针对Apriori的逐层扫描,本文提出了基于SCTree模型的主动扩展技术。应用SCTree模型的主动扩展,可以一次扩展多层,从而减少了数据扫描,降低了I/O代价;另外SCTree一次扩展多层可以在一次扫描过程中将多层情节的支持度都计算出来,减少了多层情节支持度计数之间的重复计算,降低了CPU代价。实验评估证明SCTree能够高效地发现事件序列上的频繁情节。综上所述,本文针对事件序列上基于互异出现的频繁情节挖掘问题展开了深入探讨,并提出了有效的解决方法,理论分析与实验评估表明本文提出的算法具有一定的理论意义和应用价值。