You are on page 1of 3

计 算 机 与 现 代 化

 2007 年第 7 期 J ISUANJ I YU X IANDA IHUA 总第 143 期

文章编号 : 1006 22475 (2007) 07 20003 203

一种基于矩阵结构的快速关联规则挖掘算法
1 1 2 2
何胜文 ,周绍梅 ,雷昌瑜 ,陈丽君
( 1. 南昌大学计算中心 ,江西 南昌 330031; 2. 江西科技职业学院 ,江西 南昌 330200 )

摘要 : 在对关联规则中的 Ap riori算法进行了深入研究的基础上 ,提出了基于矩阵结构的关联规则挖掘算法 。由于这个算


法只需要对交易数据库进行一次搜索 ,给出了一种简单有效的逐步缩减交易数据库的方法 , 能大量减少所需的 I/O 次
数 ,因此提高了 Ap riori算法的效率 ,并改进了数据挖掘算法的性能 。
关键词 : 数据挖掘 ; 关联规则 ; 事务压缩 ; 频繁项集
中图分类号 : TP301. 6     文献标识码 : A

A M a tr ix 2ba sed A ssoc ia tion Rule M in in g A lgor ithm

HE Sheng2wen , ZHOU Shao 2m ei , LE I Chang2yu , CHEN L i2jun


1 1 2 2

( 1. Computing Center, Nanchang University, Nanchang 330031, China;


2. J iangxi Science and Technology Institute, Nanchang 330200, China)

Abstract:Based on fully analyzing the Ap riori algorithm of an association rule m ining algorithm , this paper p resents a new matrix
- based association rule m ining algorithm. This imp roved algorithm scans the database only once and a highly efficient method of
m inim izing the trade database is given. So it reduces the tim es of input and output, thus the new algorithm p romotes the algorithm
efficiency and at the same tim e imp roves the performance of the data m ining technique.
Key words: data m ining; association rule; transaction reduction; frequent item 2set

R. Agrawal等人 1993 年提出的 。


0  引  言
1  关联规则挖掘算法的基本概念与
随着计算机应用的发展和数据库技术的日趋成
熟 ,数据库中的知识发现已经受到国际以及国内各个 Apr ior i算法的不足
行业领域的重视 , 数据挖掘作为知识发现的一种手   设 T = { I1, I2, , … In}是项的集合 。设 D 是与任
段 ,可以从大量数据中提取或“挖掘 ” 知识 。数据挖 务相关的数据库事务的集合 ,其中每个事务 T是项的
掘任务主要包括关联规则挖掘 、 分类和聚类 , 其中关 集合 , 使 得 T < I。每一 个事 务有 一个标 识 , 记 为 :
联规则挖掘 ( A ssociation Rules M ining, ARM ) 因其应 TID。设 A 是一个项集 ,事务 T包含 A ,当且仅当 A <
用的广泛性越来越受到人们的重视 。它最典型的应 T。关联规则是形如 A ] B 的蕴涵式 , 其中 A , B < T,
用是在销售事务数据库中发现新的有用信息 , 例如 : 且 A ∩B = <。规则 A ] B 在事务集 D 中成立 , 具有
在某一超市中 , 80%的客户在购买面包的同时也购买 支持度 s,其中 s是 D 中事务包含 A ∪B (即 A 和 B 两
牛奶 ,在所有的交易中有 3%的顾客同时购买面包和 者 )的百分比 。它是概率 P ( A ∪B ) 。规则 A ] B 在
牛奶 。找出所有的类似的规则 ,对于确定销售策略是 事务集 D 中具有置信度 c,如果 D 中包含 A 的事务同
很有帮助的 ,可以根据这些规则应用于货架设计 、 货 时也包含 B 的百分比是 c,它是概率 P (B |A ) ,即 :
存安排以及根据购买模式对用户进行分类 。Ap riori support (A ] B ) = P ( A ∪B ) ; confidence ( A ] B ) = P ( B |
算法是一种常用的有效的关联规则挖掘算法 , 是由 A)

收稿日期 : 2007 203 205


作者简介 : 何胜文 ( 1981 2) ,男 ,江西高安人 ,南昌大学计算机软件与理论专业硕士研究生 , 研究方向 : 数据库 , 数据挖掘 ; 周
绍梅 (1955 2) ,女 ,江西南昌人 ,南昌大学计算中心教授 ,研究方向 : 人工智能 ,数据挖掘 ; 雷昌瑜 ( 1945 2) ,男 ,江西靖安人 ,江
西科技职业学院副教授 ,研究方向 : 数据挖掘 ,软件工程 。
 
4 计  算  机  与  现  代  化 2007 年第 7 期

项的集合称为项集 ( item 2set) 。包含 K个项的项


集称为 K2项集 。项集的出现频度是包含项集的事务
3  基于矩阵的快速关联规则挖掘算法
数 ,简称为项集的频度 、
支持度和计数 。项集满足最 3. 1 改进算法的思想
小支持度 m insup , 如果项集的出现频率大于或等于 本文根据项集有序性和事务的压缩 , 对 Ap riori
m insup 与 D 中事务总数的乘积 , 如果项集满足最小 算法进行了改进 。在生成频繁项集 K 的产生过程
支持度 ,则称它为频繁项集 ( frequent item 2set) 。 中 ,同时删除不必要的扫描事务 ; 产生一个新的事务
关联规则的挖掘分为两个步骤 : ( 1 ) 找出所有支 数据库 A ′
,在下一轮的迭代中使用 , 从而提高扫描的
持度大于等于最小支持度的频繁项集 ; ( 2 ) 从频繁项 效率 ,同时由于本算法采用矩阵 A 来表示事务数据
集中产生可信的规则 。对于集中式数据挖掘 ,由于频 库 ,可以很方便地计算项集的支持度 ,从候选 K2项集
繁项集数量较多 ,使得第一步是关联规则挖掘中比较 中发现频繁 K2项集 ,只要扫描矩阵中响应的列 ,若值
m
困难的部分 ,因为如果有 m 个项集 , 就存在 2 个可 都为 1 则频度加 1。
m
能的频繁项集 ,对这 2 个项集进行计数是一个很复 3. 2 主要算法的描述
杂的过程 。所以 ,挖掘关联规则的总体性能由第一步 Initalinzing M atrix (D , Am 3 n ) ; / /初始化事务数据库的矩
决定 ,本文工作重点在第一步 。 阵表示
Ap riori算法自身虽然进行了一定的优化 ,但在实 L1 = find_frequent_1_item set (A ) ; / /发现频繁 1 2项集
际应用中还存在一些问题 : / /根据频繁 ( k21) 2项集求频繁 k 2项集
(1) 需多次扫描交易数据库 , 由于挖掘的对象都是大型 For ( k = 2; L k21 < =m; k + + )
数据库或数据仓库 ,这样势必影响算法的效率 ,要提高效率关 { Ck = ap riori_gen (L k21 , m in_sup ) ; / /根据频繁 ( k 21) 2项集
键是减少数据库遍历的次数和数据库的规模 (即交易数 ) 。 产生侯选 k - 项集
( 2 ) 识别频繁项目集时算法采用模式匹配 , 效率较低 。 For each c ∈Ck
在产生 Ck 的过程中 , 要检查 K2项 集的 ( k21) 子集在不在 L k21 For ( i = 1; i < =m; i + + )
中 ,另外在 1 2项集很大的情况下 , 利用 Ap riori产生很大的候 If (A i , c1&& A i , c2&& A i , c3 …. . . && A i , ck ) c. count +
选 2 2项集 ,再产生很大的候选 3 2项集 ,如此下去 。所以算法的 +;
效率仍需提高 。 }
( 3 ) Ap riori算法没有考虑到在数据库和数据仓库中有些 Lk = { c ∈Ck | c. count > =m in_sup };
项集是用不到的 。 Return L ∪ L k ;
/ /根据得到的 L k 压缩矩阵 A
2  矩阵挖掘算法的相关定义及性质 For ( i = 1; i < =m; i + + )
For L ∈L k
( 1 )绝对支持度 。
If (L A i ) flag = 1;
定义 在算法中 , 用 BOOL 型矩阵表示事务数据
If ( flag = 0 ) delete A i ;
库 ,用列代表项 , 用行代表事务 , 对于 BOOL 型矩阵 Procedure ap riori_gen (L k21 , m in_sup )
Am 3 n = {A ij }其中 A ij = 0 或 1, i = 1, 2, 3, …, m , j = 1, Ck =Φ ;
2, 3, …, n,定义若干项的支持度 , 只要计算相关列都 For each item set L i ∈L k21
为 1 的行的总数 。 For each item set L j ∈L k21
( 2 )对于某一个事务中所包含的各个项或项集 , if (L i [ 1 ] = L j [ 1 ] ) && (L i [ 2 ] = L j [ 2 ] ) …… && ( L i [ k 2

如果某一项或项集在侯选频繁项集中出现的次数少 2 ] = L j [ k 22 ] ) && (L i [ k 21 ] < L j [ k 21 ] )


c = Li ∪ Lj;
于最小置性度 (该项集中不包含任何频繁项集 ) , 则
if has_infrequent_subset ( c, L k21 )
该项或项集可以在以后的运算中不作考虑 ,及将该项
delete c;
或项集从矩阵中删除 。
else Ck = Ck ∪ c;
证明 : 假设项集 A i中在侯选项集中出现的次数
return Ck ;
少于最小置性度 , 任何频繁项集 k ⁄ A i , 由于 Ap riori p rocedure has_infrequent_subset ( c, L k21 )
算法是由 k - 项频繁集得到 ( k + 1 ) 2项 频繁集 , 所有 for each ( k 21) 2subset s of c
( k + 1 ) ⁄ A i ,以此类推 ,可以得出 , 对于项集 A i 将不 if s| L k21 return true;
会被用到 ,所以 ,可以将其忽略 。 else return false;
 2007 年第 7 期 何胜文等 : 一种基于矩阵结构的快速关联规则挖掘算法  
5

3. 3 算法示例说明 ④在频繁 3 2项集的基础上 ,生成的 4 2项集都小于支持度 ,


举例说明 : 取 m insup = 50% ( = 2 ) 算法结束 。
表 1  示例表
4  结束语
TID 项目
1 1  3   4 本文在 Ap riori算法的基础上 , 提出了关联规则
2 1  3  5 的改进算法 ,该算法采用矩阵的数据结构 , 该算法具
3 1  2  3  5
有如下的优点 : ( 1 )本快速算法的只需要访问一次数
4 5
据库 ,并且不需要对数据进行过多的处理 , 各方面比
10110
原算法都有很大的提高 ; ( 2 ) 由于不产生大量的候选
10101
  构造矩阵 Am 3 n = 项目集 ,本算法大大减少了原算法对内存的需求减少
11101
了计算软件对工程计算机的配置要求 ; ( 3 ) 根据得出
00001
10110 的频繁项集对事务数据库进行有效的压缩 ,提高了算
经过 1 次压缩的 A ’
m3 n = 10101 法的执行效率 。
11101
①根据改进的 ap riori算法得出频繁 1 2项 集 L1 为 : { 1, 2, 参考文献 :
3, 5} [ 1 ]  Agrawal R , Im ielinski T, Swam i A. M ining association
因为每个项集都包含频繁项 ,事务数据库不能压缩 。 rules betw een sets of item s in large databases [ A ]. Pro2
②在频繁 1 2项 集的基础上 , 生成频繁 2 2项 集 L2 为 : { ( 1 ceedings of the ACM SIGMOD [ C ]. W ashington, Dc,
3) , (1 5) , ( 3 5) } 1993. 207 2216.
因为在矩阵 Am 3 n的最后一个项集中不包含任何的频繁 [ 2 ]  Agrawal R , Srikant R. Fast algorithm s for m ining associa2
项集 ,根据算法所得的第二个性质 , 可以将其删除 , 得到矩阵 tion rules [A ]. Proceeding of the 20 th International Con2
A’
m3 n。
ference on Very Large Databases[ C ]. 1994. 487 2499.
③在频繁 2 2项集的基础上 ,生成频繁 3 - 项集 L3 为 : { ( 1 [ 3 ]  黄传明 . 一种基于散列技术和事务压缩的关联挖掘算
3 5) } 法 [ J ]. 计算机工程 , 2003 , 22 ( 10 ) : 117 ~118.
10101 [ 4 ]  李新征 . 一种新的高效 Ap riori算法 [ J ]. 微计算机信
这是可将矩阵压缩为 A ’m’ 3 n =
11101 息 , 2006, 22 ( 9 ) .

(上接第 2 页 ) 信息系统的一个约简 ,证明了该算法的有效性。


第一步 : 因 U /A = { { x1} , { x2} , { x3, x4} , { x5} } , 从而计
算出属性 A 的区分度 D (A ) = 18 /20。 参考文献 :
第二 步 : 计 算 核 Core ( A ) 。各 属 性 的 相 对 区 分 度 为 [ 1 ]  Paw lak Z. Rough Sets2Theoretical A spects of Reasoning a2
DA - { a1} ( a1 ) = DA - { a2} ( a2 ) = DA - { a4} ( a4 ) = 0, DA - { a3} ( a3 ) = bout Data [ M ]. DorD rcht: Kluwer Academ ic Publisher,
1 /10,所以 Core (A ) = { a3}。 1991.
第三步 : Red (A ) = core (A ) = { a3}。因 D (Red (A ) ) = 8 / [ 2 ]  张文修 ,吴伟志 ,等 . 粗糙集理论与方法 [M ]. 北京 : 科学
20 ≠ D ( A ) = 18 /20, 继 续 如 下 计 算 : DRed (A ) ( a1 ) = 8 /20, 出版社 , 2001.
DRed (A ) ( a2 ) = 6 /20, DRed (A ) ( a4 ) = 10 /20,计算 D ( { a3, a4} ) = [ 3 ]  李鸿 . 一种基于绝对信息量的知识约简算法 [ J ]. 计算机
18 /20 =D (A ) , 所以 Red (A ) = { a3, a4 }为系统的最小约简 。 工程与应用 , 2004, 40 (28) : 52 ~53, 217.
输出 Red = { a3, a4} ,算法结束 。与文献 [ 3 ]中的结果一致 。 [ 4 ]  张海云 ,梁吉业 ,等 . 基于划分的信息系统属性约简 [ J ].
计算机应用 , 2006, 26 ( 12 ) : 2961 ~2966.
6  结束语 [ 5 ]  W ang Jue, W ang Ju. Reduction algorithm s based on dis2
属性约简是粗糙集理论在数据分析上的一个重 cernibility matrix: The ordered attributes method [ J ]. Jour2

要应用 。一般而言 ,属性约简不惟一 。为解决求约简 nal of Computer Science & Technology, 2001, 16 ( 6 ) : 489 ~
504.
的 NP问题 ,粗糙集研究者已提出多种启发式算法 。
[ 6 ]  王国胤 , 于洪 , 杨大春 . 基于条件信息熵的决策表约简
本文通过引入划分及区分度的概念 ,提出了一种基
[ J ]. 计算机学报 , 2002, 25 ( 7 ) : 759 ~766.
于划分的启发式属性约简算法 ,并进行了算法时间复杂
度的分析。最后通过实例说明 ,使用该算法能找到完备