关联规则挖掘算法综述

关联规则挖掘算法综述
关联规则挖掘算法综述

摘要本文介绍了关联规则的基本概念和分类方法,列举了一些关联规则挖掘算法并简要分析了典型算法,展望了关联规则挖掘的未来研究方向。

1引言

关联规则挖掘发现大量数据中项集之间有趣的关联或相关联系。它在数据挖掘中是一个重要的课题,最近几年已被业界所广泛研究。

关联规则挖掘的一个典型例子是购物篮分析。关联规则研究有助于发现交易数据库中不同商品(项)之间的联系,找出顾客购买行为模式,如购买了某一商品对购买其他商品的影响。分析结果可以应用于商品货架布局、货存安排以及根据购买模式对用户进行分类。

Agrawal等于1993年首先提出了挖掘顾客交易数据库中项集间的关联规则问题[AIS93b],以后诸多的研究人员对关联规则的挖掘问题进行了大量的研究。他们的工作包括对原有的算法进行优化,如引入随机采样、并行的思想等,以提高算法挖掘规则的效率;对关联规则的应用进行推广。

最近也有独立于Agrawal的频集方法的工作[HPY00],以避免频集方法的一些缺陷,探索挖掘关联规则的新方法。也有一些工作[KPR98]注重于对挖掘到的模式的价值进行评估,他们提出的模型建议了一些值得考虑的研究方向。

2基本概念

设I={i1,i2,..,im}是项集,其中ik(k=1,2,…,m)可以是购物篮中的物品,也可以是保险公司的顾客。设任务相关的数据D是事务集,其中每个事务T是项集,使得TÍI。设A是一个项集,且AÍT。

关联规则是如下形式的逻辑蕴涵:AÞB,AÌI,AÌI,且A∩B=F。关联规则具有如下两个重要的属性:

支持度:P(A∪B),即A和B这两个项集在事务集D中同时出现的概率。

置信度:P(B|A),即在出现项集A的事务集D中,项集B也同时出现的概率。

同时满足最小支持度阈值和最小置信度阈值的规则称为强规则。给定一个事务集D,挖掘关联规则问题就是产生支持度和可信度分别大于用户给定的最小支持度和最小可信度的关联

规则,也就是产生强规则的问题。

3关联规则种类

1)基于规则中处理的变量的类别,关联规则可以分为布尔型和数值型。

布尔型关联规则处理的值都是离散的、种类化的,它显示了这些变量之间的关系。

数值型关联规则可以和多维关联或多层关联规则结合起来,对数值型字段进行处理,将其进行动态的分割,或者直接对原始的数据进行处理,当然数值型关联规则中也可以包含种类变量。

2)基于规则中数据的抽象层次,可以分为单层关联规则和多层关联规则。

在单层关联规则中,所有的变量都没有考虑到现实的数据是具有多个不同的层次的。

在多层关联规则中,对数据的多层性已经进行了充分的考虑。

3)基于规则中涉及到的数据的维数,关联规则可以分为单维的和多维的。

在单维关联规则中,我们只涉及到数据的一个维,如用户购买的物品

在多维关联规则中,要处理的数据将会涉及多个维。

4算法综述

4.1经典的频集算法

Agrawal等于1994年提出了一个挖掘顾客交易数据库中项集间的关联规则的重要方法[AS94a,AS94b],其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、

单层、布尔关联规则。

所有支持度大于最小支持度的项集称为频繁项集,简称频集。

4.1.1算法的基本思想

首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样。然后由频集产生强关联规则,这些规则必须满足最小支持度和最小可信度。

挖掘关联规则的总体性能由第一步决定,第二步相对容易实现。

4.1.2Apriori核心算法分析

为了生成所有频集,使用了递推的方法。其核心思想简要描述如下:

(1)L1={large1-itemsets};

(2)for(k=2;Lk-1¹F;k++)do begin

(3)Ck=apriori-gen(Lk-1);//新的候选集

(4)for all transactions tÎD do begin

(5)Ct=subset(Ck,t);//事务t中包含的候选集

(6)for all candidates cÎCt do

(7) c.count++;

(8)end

(9)Lk={cÎCk|c.count³minsup}

(10)end

(11)Answer=∪kLk;

首先产生频繁1-项集L1,然后是频繁2-项集L2,直到有某个r值使得Lr为空,这时算法停止。这里在第k次循环中,过程先产生候选k-项集的集合Ck,Ck中的每一个项集是对两个只有一个项不同的属于Lk-1的频集做一个(k-2)-连接来产生的。Ck中的项集是用来产生

频集的候选集,最后的频集Lk必须是Ck的一个子集。Ck中的每个元素需在交易数据库中进行验证来决定其是否加入Lk,这里的验证过程是算法性能的一个瓶颈。这个方法要求多次扫描可能很大的交易数据库,即如果频集最多包含10个项,那么就需要扫描交易数据库10遍,这需要很大的I/O负载。

可能产生大量的候选集,以及可能需要重复扫描数据库,是Apriori算法的两大缺点。

4.1.3算法的优化

为了提高算法的效率,Mannila等引入了修剪技术来减小候选集Ck的大小[MTV94],由此可以显著地改进生成所有频集算法的性能。算法中引入的修剪策略基于这样一个性质:一个项集是频集当且仅当它的所有子集都是频集。那么,如果Ck中某个候选项集有一个(k-1)-子集不属于Lk-1,则这个项集可以被修剪掉不再被考虑,这个修剪过程可以降低计算所有的候选集的支持度的代价。

4.2改进的频集算法

4.2.1散列

该算法由Park等在1995年提出[PCY95b]。通过实验发现寻找频繁项集的主要计算是在生成频繁2项集L2上,Park就是利用这个性质引入散列技术来改进产生频繁2项集的方法。

其基本思想是:当扫描数据库中每个事务,由C1中的候选1项集产生频繁1项集L1时,对每个事务产生所有的2项集,将它们散列到散列表结构的不同桶中,并增加对应的桶计数,在散列表中对应的桶计数低于支持度阈值的2项集不可能是频繁2项集,可从候选2项集中删除,这样就可大大压缩了要考虑的2项集。

4.2.2事务压缩

Agrawal等提出压缩进一步迭代扫描的事务数的方法[AS94b,HF95]。因为不包含任何K项集的事务,不可能包含任何(K+1)项集,可对这些事务加上删除标志,扫描数据库时不再考虑。

4.2.3杂凑

一个高效地产生频集的基于杂凑的算法由Park等提出[PCY95a]。通过实验我们可以发现寻找频集主要的计算是在生成频繁2-项集Lk上,Park等就是利用了这个性质引入杂凑技术来改进产生频繁2-项集的方法。

4.2.4划分

Savasere等设计了一个基于划分的算法[SON95],这个算法先把数据库从逻辑上分成几个互不相交的块,每次单独考虑一个分块并对它生成所有的频集,然后把产生的频集合并,用来生成所有可能的频集,最后计算这些项集的支持度。这里分块的大小选择要使得每个分块可以被放入主存,每个阶段只需被扫描一次。而算法的正确性是由每一个可能的频集至少在某一个分块中是频集保证的。上面所讨论的算法是可以高度并行的,可以把每一分块分别分配给某一个处理器生成频集。产生频集的每一个循环结束后,处理器之间进行通信来产生全局的候选k-项集。通常这里的通信过程是算法执行时间的主要瓶颈;而另一方面,每个独立的处理器生成频集的时间也是一个瓶颈。其他的方法还有在多处理器之间共享一个杂凑树来产生频集。更多的关于生成频集的并行化方法可以在文献[AS96]中找到。

4.2.5选样

基本思想是在给定数据的一个子集挖掘。对前一遍扫描得到的信息,仔细地组合分析,可以得到一个改进的算法,Mannila等先考虑了这一点[MTV94],他们认为采样是发现规则的一个有效途径。随后又由Toivonen进一步发展了这个思想[Toi96],先使用从数据库中抽取出来的采样得到一些在整个数据库中可能成立的规则,然后对数据库的剩余部分验证这个结果。Toivonen的算法相当简单并显著地减少了I/O代价,但是一个很大的缺点就是产生的结果不精确,即存在所谓的数据扭曲(data skew)。分布在同一页面上的数据时常是高度相关的,可能不能表示整个数据库中模式的分布,由此而导致的是采样5%的交易数据所花费的代价可能同扫描一遍数据库相近。

4.2.6动态项集计数

Brin等人给出该算法[BMUT97]。动态项集计数技术将数据库划分为标记开始点的块。不象Apriori仅在每次完整的数据库扫描之前确定新的候选,在这种变形中,可以在任何开始点添加新的候选项集。该技术动态地评估以被计数的所有项集的支持度,如果一个项集的所有子集以被确定为频繁的,则添加它作为新的候选。结果算法需要的数据库扫描比Apriori少。

4.3FP-树频集算法

针对Apriori算法的固有缺陷,J.Han等提出了不产生候选挖掘频繁项集的方法—FP-树频集算法[HPY00]。采用分而治之的策略,在经过第一遍扫描之后,把数据库中的频集压缩进一棵频繁模式树(FP-tree),同时依然保留其中的关联信息,随后再将FP-tree分化成一些条件库,每个库和一个长度为1的频集相关,然后再对这些条件库分别进行挖掘。当原始数据量很大的时候,也可以结合划分的方法,使得一个FP-tree可以放入主存中。实验表明,FP-growth 对不同长度的规则都有很好的适应性,同时在效率上较之apriori算法有巨大的提高。

4.4多层关联规则挖掘

对于很多的应用来说,由于数据分布的分散性,所以很难在数据最细节的层次上发现一些强关联规则。当我们引入概念层次后,就可以在较高的层次上进行挖掘[HF95,SA95]。虽然较高层次上得出的规则可能是更普通的信息,但是对于一个用户来说是普通的信息,对于另一个用户却未必如此。所以数据挖掘应该提供这样一种在多个层次上进行挖掘的功能。

多层关联规则的分类:根据规则中涉及到的层次,多层关联规则可以分为同层关联规则和层间关联规则。

多层关联规则的挖掘基本上可以沿用“支持度-可信度”的框架。不过,在支持度设置的问题上有一些要考虑的东西。

同层关联规则可以采用两种支持度策略:

1)统一的最小支持度。对于不同的层次,都使用同一个最小支持度。这样对于用户和算法实现来说都比较的容易,但是弊端也是显然的。

2)递减的最小支持度。每个层次都有不同的最小支持度,较低层次的最小支持度相对较小。同时还可以利用上层挖掘得到的信息进行一些过滤的工作。

层间关联规则考虑最小支持度的时候,应该根据较低层次的最小支持度来定。

4.5多维关联规则挖掘

对于多维数据库而言,除维内的关联规则外,还有一类多维的关联规则。例如:

年龄(X,“20...30”)职业(X,“学生”)==>购买(X,“笔记本电脑”)

在这里我们就涉及到三个维上的数据:年龄、职业、购买。

根据是否允许同一个维重复出现,可以又细分为维间的关联规则(不允许维重复出现)和混合维关联规则(允许维在规则的左右同时出现)。

年龄(X,“20...30”)购买(X,“笔记本电脑”)==>购买(X,“打印机”)

这个规则就是混合维关联规则。

在挖掘维间关联规则和混合维关联规则的时候,还要考虑不同的字段种类:种类型和数值型。

对于种类型的字段,原先的算法都可以处理。而对于数值型的字段,需要进行一定的处理之后才可以进行[KHC97]。处理数值型字段的方法基本上有以下几种:

1)数值字段被分成一些预定义的层次结构。这些区间都是由用户预先定义的。得出的规则也叫做静态数量关联规则。

2)数值字段根据数据的分布分成了一些布尔字段。每个布尔字段都表示一个数值字段的区间,落在其中则为1,反之为0。这种分法是动态的。得出的规则叫布尔数量关联规则。

3)数值字段被分成一些能体现它含义的区间。它考虑了数据之间的距离的因素。得出的规则叫基于距离的关联规则。

4)直接用数值字段中的原始数据进行分析。使用一些统计的方法对数值字段的值进行分析,并且结合多层关联规则的概念,在多个层次之间进行比较从而得出一些有用的规则。得出的规则叫多层数量关联规则。

5展望

对于关联规则挖掘领域的发展,笔者认为可以在如下一些方向上进行深入研究:在处理极大量的数据时,如何提高算法效率;对于挖掘迅速更新的数据的挖掘算法的进一步研究;在挖掘的过程中,提供一种与用户进行交互的方法,将用户的领域知识结合在其中;对于数值型字段在关联规则中的处理问题;生成结果的可视化,等等。

参考文献

[AIS93b]R.Agrawal,T.Imielinski,and A.Swami.Mining association rules between sets of items in large databases.Proceedings of the ACM SIGMOD Conference on Management of data,p.p. 207-216,May1993.

[AS94a]R.Agrawal,and R.Srikant.Fast algorithms for mining association rules in large database.Technical Report FJ9839,IBM Almaden Research Center,San Jose,CA,Jun.1994.

[AS94b]R.Agrawal,and R.Srikant.Fast algorithms for mining association rules.In Proc.1994 Int.Conf.Very Large Databases(VLDB’94),Sep.1994.

[AS96]R.Agrawal,and J.Shafer.Parallel mining of association rules:Design,Implementation, and Experience.IEEE Trans.Knowledge and data engineering,8:962-969,Jan.1996.

[BMUT97]S.Brin,R.Motwani,J.D.Ullman,and S.Tsur.Dynamic itemset counting and implication rules for market basket data.In ACM SIGMOD International Conference On the Management of Data,p.p.255-264,May1997.

[HF95]J,Han and Y.Fu.Discovery of multiple-level association rules from large databases.In Proc.1995Int.Conf.Very Large Databases(VLDB’95),p.p.402-431,Sep.1995.

[HPY00]J.Han,J.Pei,and Y.Yin.Mining.Frequent patterns without candidate generation.In Proc. 2000ACM-SIGMOD Int.Conf.Management of Data(SIGMOD’00),p.p.1-12,May2000.

[KHC97]M.Kamber,J.Han,J.Chang.Metarule-guided mining of multi-dimensional association rules using data cubes.In Proc.1997Int.Conf.Khowledge Discovery and Data Mining(KDD’97), p.p.207-210,Aug.1997

[KPR98]J.Kleinberg,C.Papadimitriou,and P.Raghavan.Segmentation problems.Proceedings of the30th Annual Symposium on Theory of Computing,ACM.Sep.1998.

[MTV94]H.Mannila,H.Toivonen,and A.Verkamo.Efficient algorithm for discovering association rules.AAAI Workshop on Knowledge Discovery in Databases,p.p.181-192,Jul. 1994.

[PCY95a]J.S.Park,M.S.Chen,and P.S.Yu.An effective hash-based algorithm for mining association rules.Proceedings of ACM SIGMOD International Conference on Management of Data,p.p.175-186,May1995.

[PCY95b]J.S.Park,M.S.Chen,and P.S.Yu.Efficient parallel data mining of association rules. 4th International Conference on Information and Knowledge Management,Baltimore,Maryland, Nov.1995.

[SA95]R.Srikant,and R.Agrawal.Mining generalized association rules.Proceedings of the21st International Conference on Very Large Database,p.p.407-419,Sep.1995.

[SON95] A.Savasere, E.Omiecinski,and S.Navathe.An efficient algorithm for mining association rules in large databases.Proceedings of the21st International Conference on Very Large Database,p.p.432-443,Sep.1995.

[Toi96]H.Toivonen.Sampling large databases for association rules.Proceedings of the22nd International Conference on Very Large Database,Bombay,India,p.p.134-145,Sep.1996.

关于关联规则挖掘综述

关联规则挖掘综述 潮娇娇 摘要:关联规则挖掘是数据挖掘中的一个很重要的研究内容之一,近年来很多国内外研究人员对其进行了大量的研究。为了更进一步的了解关联规则挖掘技术,并掌握其发展方向和目前的研究现状。本文对关联规则挖掘技术进行了相关综述。首先介绍了关联规则的基本概念,其次分析了近年来一些经典关联规则算法的改进,并概述了相关算法在实际中的应用。最后对关联规则挖掘技术未来的发展趋势进行了讨论。 关键字:关联规则;算法;数据挖掘; Abstract: association rule mining is one of the important data mining research contents in this year, many domestic and foreign researchers have done a lot of research on it. In order to understand further the association rule mining technology, and grasp the development status and direction of research at present. This article of association rule mining technology related review. Firstly introduces the basic concepts of association rules, then analyzes the improvement of some classical algorithm of association rules in recent years, and summarizes the application of related algorithms in practice. At the end of the association rule mining technology development trend in the future are discussed. Key words: association rules; algorithms; data mining; 引言 随着计算机技术与数据库技术的飞速地发展,数据资源越来越多。但巨大的数据,依然没有解决我们的信息需求问题,针对这种情况,产生了数据库的数据挖掘。与传统技术相比,数据挖掘技术是一种新型的信息处理技术,能够自动和智能地把位置数据或者大量数据中潜在信息转换成人们需要的信息和知识的技术。它可以从数据库提取有用的知识、规律以及更高层次的信息,对这些进行分析,帮助人们更有效的利用海量数据中存在的价值。目前对数据挖掘的发展趋势及研究方向主要集中在数据挖掘的数据总结、分类、聚类、关联规则等方面。而关联规则挖掘作为数据挖掘的核心内容之一,进来得到了很快的发展。并已经成为当今数据挖掘的热点。为此,对关联挖掘技术的研究具有重要的意义。本文将重点介绍关联规则挖掘技术的相关研究。主要对近年来关联规则挖掘技术的算法改进进行综述以及未来的发展方向。 1、关联规则基本概念 1.1 相关介绍 关联规则作为数据挖掘的核心研究内容之一,它是大量数据中发现信息之间可能存在的某种关联或者相关联系。通过分析这些挖掘出的数据联系,可以在现实中帮助我们预测或决定某些事情将会发生。有效的提高了我们制定出准确的决策。目前,关联规则挖掘技术广泛应用于金融、互联网、医学等多个领域。最早的关联挖掘是未来发现交易数据库中不同商品之间的联系,通过分析这种联系获得有关购买者的一般的购买模式。从而有助于商家合理地安排进货、库存及货架设计,更好的制定发展计划和规避风险。

关联规则挖掘算法研究

关联规则挖掘算法的研究 摘要:Apriori算法是发现频繁项目集的经典算法,但是该算法需反复扫描数据库,因此效率较低。本文介绍了Apriori算法的思想,同时对已经提出的经典的关联规则更新算法FUP和IUA算法进行分析,指出其优缺点;最后对另外的改进算法,做一个简单的叙述。 关键词数据挖掘;关联规则;Apriori算法 Keywords:data mining;relation rule;Apriori algorithm 关联规则反映了数据库中数据项目之间有趣的关联关系,而其中发现频繁项目集是关联规则挖掘应用中的关键技术和步骤。关于频繁项目集的挖掘算法研究,人们对此进行了大量的工作,其中以R. Agrawal 等人提出的Apriori 、AprioriTid 等算法最具有影响力和代表性。而这些算法的提出都是在挖掘数据库和最小支持度不变的条件下进行的。但实际中,遇到的情况可能是:随着时间的推移,挖掘数据库的规模可能不断膨胀或需要删除一部分记录,或者需要对最小支持度进行调整从而逐步聚集到我们感兴趣的频繁项目集上。因而如何从数据发生变动后的数据库中高效地对已经推导出的关联规则进行更新,具有非常重要的应用价值,这就是所谓的增量式挖掘关联规则的问题。 1关联规则 问题描述:设I={i1,i2,...,i m}是m个不同项目的集合,给定一个事务数据库D,其中D每一个事务T是I中一组项目的集合,即T I,T有一个惟一的标志符TID。如果对于I中的一个子集X,有X T,我们就说一个事务T包含X。一条关联规则(association rule)就是一个形如X =>Y的蕴涵式,其中X,Y T,而X∩Y=Φ。关联规则成立的条件是:①它具有最小支持度s,即事务数据库D中至少有s%的事务包含X∪Y;②它具有最小可信度c,即在事务数据库D中包含X的事务中至少有c%同时也包含Y。给定一个事务集D,挖掘关联规则问题就是产生支持度和可信度分别大于用户给定的最小支持度和最小可信度的关联规则,也就是产生强规则的问题。关联规则的挖掘问题可以分解为以下两个问题: (1) 找出事务数据库中所有具有用户最小支持度的项目集。具有用户指定最小支持度的项目集称为频繁项目集,反之称为非频繁项目集。一个项目中所含项目的个数称为该项目的长度。 (2) 利用频繁项目集生成关联规则。对于每一个频繁项目集A,若B A,B≠Φ,且support(A)/support(B)>minconf,则有关联规则B=> (A-B)。目前大多数的研究主要集中在第一个问题上面。 2 Apriori核心算法 Agrawal等人于1994年提出了一个挖掘顾客交易数据库中项集间的关联规则的重要方法Apriori算法,其核心是基于两个阶段频繁项集思想的递推算法。算法的基本思想是首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样。然后由频繁项集产生强关联规则,这些规则必须满足最小支持度和最小可信度。Apriori核心算法思想简要描述如下:该算法中有两个关键步骤连接步和剪枝步。 (1) 连接步:为找出Lk(频繁k一项集),通过Lk-1与自身连接,产生候选k-项集,该候选项集记作Ck;其中Lk-1的元素是可连接的。

关联规则挖掘英文PPT

INFO411/911 Laboratory exercises on Association Rule Mining Overview: Association rule mining can help uncover relationships between seemingly unrelated data in a transactional database. In data mining, association rules are useful in discovering consequences of commonly observed patterns within a set of transactions. What you need: 1.R software package (already installed on the lab computers) 2.The file "laboratory_week5.zip" on Moodle. Preparation: 1.Work in a group of size two to three (minimum size of a group is two. But no more than three students are to work together). Penalties apply if a group exeeds these limits. 2.Boot computer into Windows mode. 3.Download laboratory_week5.zip then save to an arbitrary folder, say "C:\Users\yourname\Desktop" 4.Uncompress laboratory_week 5.zip into this folder 5.Start "R" 6.Change the working directory by entering: setwd("C:/Users/yourname/Desktop") (Note that R expects forward slashes rather than backwars slashes as used by Windows.) Your task: Your are to submit a PDF document which contains your answers of the questions in this laboratory exercise. One document is to be submitted by each group. The header of the document must list the name and student number of all students in the group. Clearly indicate which question you have answered. The following link provides a documentation of the association rule module in R (called arules). The link can help you develop a better understanding of the usage and parameters of the association rule package in R: https://www.360docs.net/doc/37490094.html,/web/packages/arules/arules.pdf Work through the following step and answer given questions: Step1: Familiarize yourself with the arules package in R. Start R and type: library(arules) to load the package. We shall start from the analysis of a small file sample1.csv that contains some transactional data. To load data into R enter: sample1.transactions <- read.transactions("sample1.csv", sep=",") To get information about the total number of transactions in a file sample1.csv enter: sample1.transactions To get a summary of data set sample1.csv enter: summary(sample1.transactions) The data set is described as sparse matrix that consists of 10 rows and five columns. The density of

关联规则挖掘综述

关联规则挖掘综述 摘要:近年来国内外学者对关联规则进行了大量的研究。为了更好地了解关联规则的挖掘技术,对研究现状有更深入的了解,首先本文对数据挖掘技术进行了介绍,接着介绍了关联数据挖掘的基本原理,最后对经典的挖掘算法进行分类介绍。 关键词:数据挖掘;关联规则;算法;综述 1.引言 数据挖掘是从海量的数据里寻找有价值的信息和数据。数据挖掘中常用的算法[1]有:关联规则分析法(解决事件之间的关联问题)、决策树分类法(对数据和信息进行归纳和分类)、遗传算法(基于生物进化论及分子遗传学理论提出的)、神经网络算法(模拟人的神经元功能)等。 数据挖掘最早使用的方法是关联分析,主要应用于零售业。其中最有名的是售货篮分析,帮助售货商制定销售策略。随着信息时代的到来,数据挖掘在金融[2]、医疗[3]、通信[4]等方面得到了广泛的应用。 2.关联规则基本原理 设项的集合I = { I1 ,I2 ,...,Im },数据库事务的集合为D,我们用|D|表示事务数据库所有事务的个数,其中用T

表示每个事务,使得T I。我们用TID作为每个事务的唯一标识符。用X表示一个项集,满足X T,那么交易T包含X。根据上述相关描述,给出关联规则的相关定义。 2.1项集支持度 用X表示数据库事务D中的项集,项集X的支持度表示项集X在D中事务数所占的比例,用概率P(X)表示,那么Support(X)=P(X)=COUNT(X)/|D| (1) 2.2关联规则置信度 X Y关联规则的置信度是数据库事务D中包含X Y的事务数与包含X的事务数之比,表示方法如下: confidence(X Y)= support(X Y)/support(X)= P(Y|X)(2) 3.关联规则算法 3.1经典的Apriori挖掘算法 大多数关联规则的算法是将关联规则挖掘任务分为两个子任务完成。一是频繁项集的产生,频繁项集的目的是找到大于等于给定的最小支持度阈值的所有项集,这些项集我们称之为频繁项集。二是规则的产生,即从频繁项集中找到置信度比较高的规则,我们称之为强规则。Apriori挖掘算法是众多挖掘关联规则中比较经典的算法,它采用布尔关联规则,是一种宽度优先算法。 3.2Apriori算法优化

数据挖掘实验报告-关联规则挖掘

数据挖掘实验报告(二)关联规则挖掘 姓名:李圣杰 班级:计算机1304 学号:02

一、实验目的 1. 1.掌握关联规则挖掘的Apriori算法; 2.将Apriori算法用具体的编程语言实现。 二、实验设备 PC一台,dev-c++ 三、实验内容 根据下列的Apriori算法进行编程:

四、实验步骤 1.编制程序。 2.调试程序。可采用下面的数据库D作为原始数据调试程序,得到的候选1项集、2项集、3项集分别为C1、C2、C3,得到的频繁1项集、2项集、3项集分别为L1、L2、L3。

代码 #include <> #include<> #define D 4 //事务的个数 #define MinSupCount 2 //最小事务支持度数 void main() { char a[4][5]={ {'A','C','D'}, {'B','C','E'}, {'A','B','C','E'}, {'B','E'} }; char b[20],d[100],t,b2[100][10],b21[100][10]; int i,j,k,x=0,flag=1,c[20]={0},x1=0,i1=0,j1,counter =0,c1[100]={0},flag1=1,j2,u=0,c2[100]={0},n[2 0],v=1; int count[100],temp; for(i=0;i=MinSupCount) { d[x1]=b[k]; count[x1]=c[k]; x1++; } } //对选出的项集中的元素进行排序 for(i=0;id[j+1])

数据挖掘中关联规则挖掘的应用研究

数据挖掘中关联规则挖掘的应用研究 吴海玲,王志坚,许峰 河海大学计算机及信息工程学院,江苏南京(210098) 摘 要:本文首先介绍关联规则的基本原理,并简单概括其挖掘任务,然后说明关联规则的经典挖掘算法Apriori 算法,通过一个实例分析进一步明确关联规则在CRM 中的应用,最后展望了关联规则挖掘的研究方向。 关键词:数据挖掘,关联规则,Apriori 算法,CRM 引言 关联规则是表示数据库中一组对象之间的某种关联关系的规则,关联规则挖掘的主要对象是交易(Transaction)数据库。这种数据库的一个主要应用是零售业,比如超级市场的销售管理。条形码技术的发展使得数据的收集变得更容易、更完整,从而可以存储大量的交易资料。关联规则就是辨别这些交易项目之间是否存在某种关系。例如:关联规则可以表示“购买了商品A 和B 的顾客中有80%的人又购买了商品C 和D”。这种关联规则提供的信息可以用作商品目录设计、商场货架的布置、生产安排、具有针对性的市场营销等。 [1] 1 关联规则的基本原理 设I={i 1,i 2,……,i m }是项的集合,设任务相关的数据D 是数据库事务的集合,其中每个事务T 是项的集合,使得T I 。每一个事务有一个标识符,称作T ID 。设X 是一个项集,事务T 包含X 当且仅当X T 。关联规则是形如X Y 的蕴涵式,其中X I ,Y ?I ,并且X ∩Y =?。规则X Y 在事务集D 中成立,具有支持度s ,其中s 是D 中事务包含X ∪Y (即X 和Y 二者)的百分比,它是概率P (X ∪Y )。规则X Y 在事务集中具有可信度c ,如果D 中包含X 的事务同时也包含Y 的百分比c 。这是条件概率P (X Y ∣)。即是 ??????support(X ?Y)= P (X Y ∪) confidence(X ?Y)= P (X Y ∣) 同时满足最小支持度(minsup)和最小可信度阈值(minconf )的规则称作强规则[1]。 项的集合称为项集(itemset )。包含k 个项的项集成为k -项集,例如集合{computer, software }是一个2—项集。项集的出现频率是包含项集的事务数,简称为项集的频率。项集满足最小支持度minsup ,如果项集的出现频率大于或者等于minsup 与D 中事务总数的乘积。如果项集满足最小支持度,则称它为频繁项集(frequent itemset) [2]。 2 关联规则的发现任务 关联规则挖掘的问题就是要找出这样的一些规则,它们的支持度或可信度分别大于指定的最小支持度minsup 和最小可信度minconf 。因此,该问题可以分解成如下两个子问题[3]: 1.产生所有支持度大于或等于指定最小支持度的项集,这些项目集称为频繁项目集(frequent itemsets ),而其他的项目集则成为非频繁项目集(non-frequent itemsets ) 2.由频繁项集产生强关联规则。根据定义,这些规则必须满足最小支持度和最小可信度。 关联规则挖掘的问题的主要特征是数据量巨大,因此算法的效率很关键。目前研究的重点在第一步,即发现频繁项目集,因此第二步相对来说是很容易的。

数据挖掘算法之关联规则

数据挖掘算法之-关联规则挖掘(Association Rule) (2009-09-20 21:59:23) 转载 标签: 分类:DM dm 在数据挖掘的知识模式中,关联规则模式是比较重要的一种。关联规则的概念由Agrawal、Imielinski、Swami 提出,是数据中一种简单但很实用的规则。关联规则模式属于描述型模式,发现关联规则的算法属于无监督学习的方法。 一、关联规则的定义和属性 考察一些涉及许多物品的事务:事务1 中出现了物品甲,事务2 中出现了物品乙,事务3 中则同时出现了物品甲和乙。那么,物品甲和乙在事务中的出现相互之间是否有规律可循呢?在数据库的知识发现中,关联规则就是描述这种在一个事务中物品之间同时出现的规律的知识模式。更确切的说,关联规则通过量化的数字描述物品甲的出现对物品乙的出现有多大的影响。 现实中,这样的例子很多。例如超级市场利用前端收款机收集存储了大量的售货数据,这些数据是一条条的购买事务记录,每条记录存储了事务处理时间,顾客购买的物品、物品的数量及金额等。这些数据中常常隐含形式如下的关联规则:在购买铁锤的顾客当中,有70 %的人同时购买了铁钉。这些关联规则很有价值,商场管理人员可以根据这些关联规则更好地规划商场,如把铁锤和铁钉这样的商品摆放在一起,能够促进销售。 有些数据不像售货数据那样很容易就能看出一个事务是许多物品的集合,但稍微转换一下思考角度,仍然可以像售货数据一样处理。比如人寿保险,一份保单就是一个事务。保险公司在接受保险前,往往需要记录投保人详尽的信息,有时还要到医院做身体检查。保单上记录有投保人的年龄、性别、健康状况、工作单位、工作地址、工资水平等。这些投保人的个人信息就可以看作事务中的物品。通过分析这些数据,可以得到类似以下这样的关联规则:年龄在40 岁以上,工作在A 区的投保人当中,有45 %的人曾经向保险公司索赔过。在这条规则中,

关联规则挖掘基本概念和算法--张令杰10121084

研究生课程论文 关联规则挖掘基本概念和算法 课程名称:数据仓库与数据挖掘 学院:交通运输 专业:交通运输规划与管理 年级:硕1003班 姓名:张令杰 学号:10121084 指导教师:徐维祥

摘要 (Ⅰ) 一、引言 (1) 二、关联规则的基本描述 (1) 三、经典频繁项集挖掘的Apriori算法 (3) 四、提高Apriori算法的效率 (6) 五、由频繁项集产生关联规则 (8) 六、总结 (9) 参考文献 (9)

目前,数据挖掘已经成为一个研究热点。关联规则数据挖掘是数据挖掘的一个主要研究内容,关联规则是数据中存在的一类重要的可被发现的知识。其核心问题是如何提高挖掘算法的效率。本文介绍了经典的关联规则挖掘算法Apriori并分析了其优缺点。针对该算法的局限性,结合Apriori性质,本文对Apriori中连接的步骤进行了改进。通过该方法,可以有效地减少连接步产生的大量无用项集并减少判断项集子集是否是频繁项集的次数。 关键词:Apriori算法;关联规则;频繁项集;候选集

一、 引言 关联规则挖掘发现大量数据中项集之间有趣的关联或相关联系。如果两项或多项属性之间存在关联,那么其中一项的属性就可以依据其他属性值进行预测。它在数据挖掘中是一个重要的课题,最近几年已被业界所广泛研究。 关联规则挖掘的一个典型例子是购物篮分析[1] 。关联规则研究有助于发现交易数据库中不同商品(项)之间的联系,找出顾客购买行为模式,如购买了某一商品对购买其他商品的影响。分析结果可以应用于商品货架布局、货存安排以及根据购买模式对用户进行分类。 最著名的关联规则发现方法是R. Agrawal 提出的Apriori 算法。关联规则挖掘问题可以分为两个子问题:第一步是找出事务数据库中所有大于等于用户指定的最小支持度的数据项集;第二步是利用频繁项集生成所需要的关联规则,根据用户设定的最小置信度进行取舍,最后得到强关联规则。识别或发现所有频繁项目集市关联规则发现算法的核心。 二、关联规则的基本描述 定义1. 项与项集 数据库中不可分割的最小单位信息,称为项目,用符号i 表示。项的集合称为项集。设集合{}k i i i I ,,,21 =是项集,I 中项目的个数为k ,则集合I 称为k -项集。例如,集合{啤 酒,尿布,牛奶}是一个3-项集。 定义2. 事务 设{}k i i i I ,,,21 =是由数据库中所有项目构成的集合,一次处理所含项目的集合用T 表示,{}n t t t T ,,,21 =。每一个i t 包含的的项集都是I 子集。 例如,如果顾客在商场里同一次购买多种商品,这些购物信息在数据库中有一个唯一的标识,用以表示这些商品是同一顾客同一次购买的。我们称该用户的本次购物活动对应一个数据库事务。 定义3. 项集的频数(支持度计数) 包括项集的事务数称为项集的频数(支持度计数)。 定义4. 关联规则 关联规则是形如Y X ?的蕴含式,其中X ,Y 分别是I 的真子集,并且φ=?Y X 。 X 称为规则的前提,Y 称为规则的结果。关联规则反映X 中的项目出现时,Y 中的项目也 跟着出现的规律

并行关联规则挖掘综述

关联规则是等人首先提出的的一个重要R.Agrawal KDD 研究内容,近年来受到了数据库界的广泛关注。关联规则是寻找在同一个事件中出现的不同项的相关性,即找出事件中频繁发生的项或属性的所有子集,以及它们之间应用相互关联性。关联规则最早用于发现顾客交易数据库中不同商品间的联系,后来诸多的研究人员对关联规则的挖掘问题进行了大量的拓展和研究。他们的工作包括对原有算法的优化,如引入并行的思想,以提高算法的效率,对关联规则的应用进行扩展。关联规则挖掘具有计算量大,负载集中的特点。而I/O 且许多关联规则的实际应用涉及到海量数据。在这种情况下,即使对算法进行了优化,在单处理机上使用串行算法进行挖掘所需要的时间可能也是无法接受的。其主要原因在于单处理器本身受到内存和带宽的限制。因此,必须依靠I/O 高性能并行计算来有效地完成挖掘任务。关联规则的基本概念 1 关联规则的形式化描述如下: {}12,,...,m i i i 令为项目集,为事物数据库,其中每I = D I T ?个事物是一个项目子集,并另有一个唯一的事物标 T ( )T X ?识符。如果,则事物包含项目集。 TID T X Y X ?I Y I X ??,一个关联规则是形如的蕴涵式这里并 , ,Y X ∩Y X ?且ф。规则在交易数据库中的支持度 = D (是交易数据库中和的交易数与所有交易数之比, support)X Y Y X ?记为,即support( )Y X ?{ }D D T T Y X T /,:∈?∪support( )= Y X ?规则在交易数据库中的可信度指包 D (confidence)含和的交易数与包含的交易数之比,记为 X Y X Y X ?,即 confidence( )confidence(Y X ?{}{}D T T X T D T T Y X T ∈?∈?∪,:/,: )= 给定一个交易集,关联规则的挖掘问题就是产生支持 D 度和可信度分别大于用户给定的最小支持度和最 (minsupp)小可信度的关联规则。 (minconf)关联规则的发掘分为两个步骤:找出所有支持度大(1)于最小支持度的频集;从频集中产生期望的规则。(2)串行关联规则挖掘算法2 目前所有并行关联规则算法都是在相应的串行算法的基础上提出的。本文首先对这些串行算法进行介绍和分析。 算法2.1 Apriori-like 在各种关联规则挖掘算法中,最经典、最广泛使用的就是等Agrawal [2]设计的算法,其核心思想是基于频集理Apriori 论的递推方法。首先产生频繁项集,然后是频繁项集,1-2-直到有某个值使频繁项集为空,算法停止。这里在第次r r-k 循环中,过程先通过对两个只有一个项不同的属于的频 k-1集做连接产生候选项集的集合。然后验证候选项集 (k-2)-k-k-中的每个元素来决定是否将其加入频集,这里的验证过程k-是算法性能的一个瓶颈。这个方法要求多次扫描数据库,这就需要很大的负载。I/O 等提出了一个高效地产生频繁集的基于杂凑Park (hash)的算法:算法。通过实验Dynamic Hashing and Pruning(DHP)可以发现寻找频集的主要计算是在生成频繁项集上。2-DHP 利用一个杂凑表在计算频繁项集时先大概计算出项集的1-2-支持度,从而减少了候选项集的数量。还采用了数据2-DHP 库修剪技术,通过修剪掉那些不包含频集的事物集以减小下一次循环中数据库的大小。然而,这种修剪技术的优化并不显著。其主要原因在于只能通过过滤对数据库执行逻辑上的 并行关联规则挖掘综述 尚学群,沈均毅 西安交通大学电信工程学院软件研究所,西安( 710049 ) 摘要: 关联规则发现作为数据挖掘的重要研究内容,在许多实际领域内得到了广泛的应用。因为在挖掘过程中涉及到大量的数据和计算,高性能计算成为大规模数据挖掘应用的一个重要组成部分。该文介绍了当前并行关联规则挖掘方面的研究进展,对一些典型算法进行了分析和评价,从并行度、负载平衡以及和数据库的集成等方面展望了并行关联规则挖掘的研究方向。关键词: 数据挖掘;关联规则;并行算法 Survey of Parallel Association Rule Mining ,SHANG Xuequn SHEN Junyi (Software Institute,School of Telecom Engineering, Xi'an Jiaotong University, Xi'an 710049) 【】Abstract Due to the huge size of data and amount of computation involved in data mining, high-performance computing is an essential component for any successful large-scale data mining application. This paper provides a survey of the study in parallel association rule generation, reviews and analyses some typical algorithms, views the trend of parallel association rule mining based on the kind of parallelism exploited, the load balancing strategy used, and the integration with databases. The goal of this paper is to serve as a reference for both researchers and practitioners interested in the state-of-the-art in parallel association rule mining.【】Key words ;;Data mining Association rules Parallel algorithms 第30卷 第14期Vol.30 № 14计 算 机 工 程Computer Engineering 2004年7月 July 2004 ?发展趋势/热点技术 ? 中图分类号: TP182 文章编号:1000—3428(2004)14 —0001—03 文献标识码:A

关联规则挖掘算法综述

关联规则挖掘算法综述
本文介绍了关联规则的基本概念和分类方法, 列举了一些关联规则挖掘算法并简 要分析了典型算法,展望了关联规则挖掘的未来研究方向。
1 引言
关联规则挖掘发现大量数据中项集之间有趣的关联或相关联系。 它在数据挖掘中 是一个重要的课题,最近几年已被业界所广泛研究。 关联规则挖掘的一个典型例子是购物篮分析。 关联规则研究有助于发现交易数据 库中不同商品(项)之间的联系,找出顾客购买行为模式,如购买了某一商品对 购买其他商品的影响。分析结果可以应用于商品货架布局、货存安排以及根据购 买模式对用户进行分类。 Agrawal 等于 1993 年首先提出了挖掘顾客交易数据库中项集间的关联规则问题 [AIS93b],以后诸多的研究人员对关联规则的挖掘问题进行了大量的研究。他们 的工作包括对原有的算法进行优化,如引入随机采样、并行的思想等,以提高算 法挖掘规则的效率;对关联规则的应用进行推广。 最近也有独立于 Agrawal 的频集方法的工作[HPY00],以避免频集方法的一些缺 陷,探索挖掘关联规则的新方法。也有一些工作[KPR98]注重于对挖掘到的模式 的价值进行评估,他们提出的模型建议了一些值得考虑的研究方向。
2 基本概念
设 I={i1,i2,..,im}是项集,其中 ik(k=1,2,…,m)可以是购物篮中的物品,也可 以是保险公司的顾客。设任务相关的数据 D 是事务集,其中每个事务 T 是项集, 使得 TÍI。设 A 是一个项集,且 AÍT。 关联规则是如下形式的逻辑蕴涵:A Þ B,AÌI, AÌI,且 A∩B=F。关联规则具有如下两个重要的属性: 支持度: P(A∪B),即 A 和 B 这两个项集在事务集 D 中同时出现的概率。 置信度: P(B|A),即在出现项集 A 的事务集 D 中,项集 B 也同时出现的概率。 同时满足最小支持度阈值和最小置信度阈值的规则称为强规则。 给定一个事务集 D,挖掘关联规则问题就是产生支持度和可信度分别大于用户给定的最小支持度 和最小可信度的关联规则,也就是产生强规则的问题。
3 关联规则种类

关联规则挖掘Apriori算法综述

文献综述 课程名称:科技写作与文献检索 完成题目:关联规则挖掘Apriori算法综述专业班级: 姓名:学号: 完成时间:批阅时间: 指导教师:成绩:

关联规则挖掘Apriori算法综述 摘要:关联规则挖掘是数据挖掘研究领域中的一个重要任务,随着大量数据不停的收集和存储,从数据库中挖掘关联规则变得极为重要。关联规则挖掘Apriori 算法是关联规则挖掘中的一种经典算法。为此,本文对国内外有关 Apriori 算法的研究现状、算法的原理、优化算法的思想进行了探讨,综述了Apriori算法的主要优化方法,并指出了Apriori算法在实际中的应用领域,提出了未Apriori 算法的研究方向和应用发展趋势。 关键词:关联规则;数据挖掘;Apriori算法;综述 Abstract:The associative rule mining technique is an important technique in data mining research. Apriori algorithm is a classical algorithm of associative rules. How to dig out the rules of the associated data set from the database in the IT development process is important with increasing of massive data collection and storage. In this paper the principles and optimization idea of Apriori algorithm are discussed and several classical optimization algorithms are analyzed at the same time. Finally the trends of future development are forecasted. Key words:associative rules;massive data;optimization;developmental trends 1.引言 数据挖掘也称数据库中的知识发现,是指从大型数据库或数据仓库中提取人们感兴趣的知识,这些知识是隐含的、事先未知的潜在有用信息,提取的知识一般可表示为概念、规则、规律、模式等形式[1]。大家知道,如今已可以用数据库管理系统来存储数据,还可用机器学习的方法来分析数据和挖掘大量数据背后的知识,而这两者的结合就促成了数据挖掘技术的产生。数据挖掘是一门交叉性的学科,涉及到机器学习、模式识别、归纳推理、统计学、数据库、数据可视化、高性能计算等多个领域。 关联规则挖掘是数据挖掘中最活跃的研究方向之一,其本质是要找出隐藏在

关联规则挖掘综述

关联规则挖掘综述 本文介绍了关联规则挖掘的研究情况,提出了关联规则的分类方法,对一些典型算法进行了分析和评价,指出传统关联规则衡量标准的不足,归纳出关联规则的价值衡量方法,展望了关联规则挖 蔡伟杰张晓辉朱建秋朱扬勇2 (复旦大学计算机科学系上海 200433) 摘要:本文介绍了关联规则挖掘的研究情况,提出了关联规则的分类方法,对一些典型算法进行了分析和评[1]价,指出传统关联规则衡量标准的不足,归纳出关联规则的价值衡量方法,展望了关联规则挖掘的未来研究方向。 关键词:数据挖掘,关联规则,频集,OLAP 1 引言 数据挖掘(Data Mining),又称数据库中的知识发现(Knowledge Discovery in Database),在最近几年里已被数据库界所广泛研究,其中关联规则(Association Rules)的挖掘是一个重要的问题。 关联规则是发现交易数据库中不同商品(项)之间的联系,这些规则找出顾客购买行为模式,如购买了某一商品对购买其他商品的影响。发现这样的规则可以应用于商品货架设计、货存安排以及根据购买模式对用户进行分类。 Agrawal等于1993年[1]首先提出了挖掘顾客交易数据库中项集间的关联规则问题,以后诸多的研究人员对关联规则的挖掘问题进行了大量的研究。他们的工作包括对原有的算法进行优化,如引入随机采样、并行的思想等,以提高算法挖掘规则的效率;对关联规则的应用进行推广。 最近也有独立于Agrawal的频集方法的工作[18,19],以避免频集方法的一些缺陷,探索挖掘关联规则的新方法。同时随着OLAP技术的成熟和应用,将OLAP 和关联规则结合[20,21]也成了一个重要的方向。也有一些工作[6]注重于对挖掘到的模式的价值进行评估,他们提出的模型建议了一些值得考虑的研究方向。 本文第二部分是对关联规则基本概念的介绍,提出了关联规则的分类方法;第三部分是对挖掘算法的介绍,从经典的apriori开始,然后描述了对该算法的优化拓展,接着讲述脱离apriori算法的方法,最后是多层、多维的关联规则挖掘;第四部分归纳出关联规则价值衡量方法,主要从两个方面进行考虑:系统客观层面和用户主观层面;最后展望了关联规则挖掘的未来研究方向。

相关文档
最新文档