收 稿日期 : 2009-02-10; 修回 日期: 2009-03-09 基 金项目 : 陕 西省自 然科 学基金 资助项 目( 2004f283) ; 西安 市科 技创新 支撑 —应用 发展
研究计 划资助 项目 ( YF07024)
作 者简介 : 孟彩霞 ( 1966-) , 女, 山 西永 济人, 副教 授, 硕士 , 主 要研 究方向 为数据 库新 技术、数 据挖掘 等( mcxmcx@ xiyou. edu. cn) .
面 向 数 据 流 的 频 繁 模 式 挖 掘 研 究
*
孟彩霞
( 西安 邮电 学院 计算机科 学系 , 西安 710061)
摘 要: 数 据流 的无 限性 、高 速性 使得 经典 的频 繁模 式挖 掘 方 法 难 以 适 用到 数 据 流 中 。针 对 数 据 流 的特 点 , 对
数据 流中 频繁 模式挖 掘问 题进 行 了 研 究, 提出 了 数 据 流频 繁 模 式 挖 掘 算 法 FP-SegCount。 该 算法 将 数 据 流 分 段
并利 用改 进的 FP-growth 算法 挖掘 分段 中的 频繁 项集, 然后利 用 Count-Min Sketch 进行项 集计 数。算 法 解决 了 压
缩统 计和 计算 快速高 效的 问题 。通 过实 验分 析, FP-SegCount算 法是 有效 的。
关键 词: 数 据流 ; 数据 挖掘 ; 数据 流挖 掘; 频繁模 式
中图 分类 号: TP311 文 献标 志码: A 文 章编 号: 1001-3695( 2009) 11-4054-03
doi: 10. 3969/j. issn. 1001-3695. 2009. 11. 015
Research on mining frequent patterns in data streams
MENG Cai-xia
( Dept. of Computer Science, Xi’an University of Posts & Telecommunications, Xi’an 710061, China)
Abstract: Because of the limitless and high speed of data stream, classical frequent patterns mining method is difficult to ex-
tend to datastream. According to the characteristic of data streams, this paper proposed FP-SegCount algorithmfor mining fre-
quent patterns from data streams. The algorithm partitioned the data streamand used modified FP-growth algorithmto mining
frequent itemsets in every segment. And then, counted itemsets in Count-Min Sketch. The algorithm solved the problem of
compressed statistic and effective computation. Through experimentation and analysis, FP-SegCount algorithm is efficient.
Key words: data streams; data mining; data streammining; frequent patterns
频繁模 式 挖 掘是 关 联 规则 挖 掘 问题 的 核 心。Agrawal 等
人
[ 1]
提出了经典的频 繁模 式挖掘 算法 Apriori 算法, 后 来一 些
类 Apriori 算法
[ 2 ~4]
对 Apriori 作了 很多 改 进。但 是 Apriori 系
列算法有一个缺陷, 即在挖掘频繁模式时可能需要多次重复扫
描数据库, 并且会产 生大量 的 候选 项 集
[ 5,6]
, 从 而降 低了 算 法
性能。Han等人提出了新的结构 FP-tree 和相 应的模式增 长算
法 FP-growth
[ 5, 7]
。该算法只需扫 描两次 数据 库来 建立 FP-tree
结构, 采用模式增长的方法挖掘频繁模式, 无须产生候选项集,
大大提高了挖掘效率。
现在越来越多的应用产 生的数 据以流 的形式 出现。数 据
流中的数据数量巨大且连续不 断地到 来, 如网络 监控、Web 服
务器日志、电信呼叫 记录、股票交 易联机 分析等。由 于受到 时
间和 内 存、CPU 等 资源 的 限 制, 传 统 的数 据 挖 掘方 法 不 再 适
用。近年来挖掘数据流中的频 繁模式 成为数 据挖掘 领域中 的
研究热点。数据流中频繁模 式挖掘 是从实 时、连续、有序的 数
据序列中寻找频繁模式的过程。
在数据 流 中 频 繁 模 式 挖 掘 方 面, Gurmeet 等 人
[ 8]
提 出 了
Sticky Sampling算法 和 Lossy Counting 算 法, 以 及扩 展 的 Lossy
Counting 算法来挖掘数据流中 的频繁模式。Moses 等人
[ 9]
借助
于 Count Sketch的数据结构提出了一个一遍扫描数据流来挖掘
数据流中频 繁模 式的 算法。Graham 等人
[ 10]
提 出了 Count-Min
数据结构, 该结构 可以快 速地进 行点查 询。Richard 等人
[ 11]
提
出了一种两遍的扫 描算法来挖 掘频繁模 式。Giannella 等人
[ 12]
提出了一种 FP-stream模型挖掘数 据流中的频 繁模式。东南大
学的刘学军等人
[ 13]
在借鉴 FP-growth 算法的基础上, 提出了 FP-
DS算法, 该算法采用分段的思想, 逐段挖掘频繁模式, 可以有效
地挖掘所有频繁模式, 尤其适合长频繁模式的挖掘。
1 问题定义
对于数据流, 不同的文献给出了大 致相同的 定义
[ 8 ~11]
: 数
据流是一种连续、高速、无限、时变的有序序列。数据流频繁 模
式挖掘所处理的通常是事务性数据流, 即按照时间顺序先后到
达的事务。下面给出事务性数据流的形式化定义
[ 14]
。
定义 1 事务性数据流。令 I = { i
1
, i
2
, …, i
n
} 为 n 个不 同
字符的集合, 其中的字符称为项( item) , 则对于任意 X I, 称 X
为一个项集( 如果 |X|= k, 则 称 X 为 k 项集 ) 。 事务 T 是一 个
项集, 因此对于任意事务 T, 存在 T I。令 t 表示任一时间戳,
T
t
表示在该时 间戳 到达 的 事务, 则 事 务 性数 据 流 可以 表 示 为
{ …, T
ti - 1
, T
ti
, T
ti +1
, …} 。
定义 2 设 DS是数据流 序列, 其中包含项 目集 X 的事 务
数称为项目集 X 的支持 数, 记 为 f
DS
( X) 。项目 集 X 的 支持 度
记为 X. sup, X. sup =f
DS
( X) /|DS|, 其中 |DS|是数据流 DS中的
事务数。
频繁项集挖掘是找出支持度 大于给 定支持 度 S 的所有 项
集, 这些项集被称为频繁项集。
定义 3 设 给定的 支持度 S 和允 许误差 ε, |N|表 示到 目
前为 止所 见到 的数 据流 DS 的事 务数, 对于 项目 集 X, 如果 有
f
DS
( X) ≥( S - ε) |N|( 即 X. sup≥S- ε) , 则称 X 为 DS 中的 频
第 26 卷 第 11 期
2009 年 11 月
计 算 机 应 用 研 究
Application Research of Computers
Vol. 26 No. 11
Nov. 2009