关联规则挖掘Apriori算法综述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
文献综述
课程名称:科技写作与文献检索
完成题目:关联规则挖掘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]。大家知道,如今已可以用数据库管理系统来存储数据,还可用机器学习的方法来分析数据和挖掘大量数据背后的知识,而这两者的结合就促成了数据挖掘技术的产生。数据挖掘是一门交叉性的学科,涉及到机器学习、模式识别、归纳推理、统计学、数据库、数据可视化、高性能计算等多个领域。
关联规则挖掘是数据挖掘中最活跃的研究方向之一,其本质是要找出隐藏在
数据间的相互关系。Agrawal等于1993年设计了一个基本算法—Apriori算法[2],首先提出了挖掘顾客交易数据库中项集间的关联规则问题,其核心方法是基于频集理论的递推方法。以后诸多的研究人员对关联规则的挖掘问题进行了大量的研究。他们的工作包括对原有的算法进行优化,如引入随机采样、并行思想等,以提高算法挖掘规则的效率;提出各种变体模型,如泛化的关联规则、周期关联规则等,对关联规则的应用进行推广。关联规则挖掘作为数据挖掘的重要研究内容之一,主要研究事务数据库、关系数据库和其他信息存储设施中的大量数据项之间隐藏的、有趣的规律。关联规则挖掘最初仅限于挖掘事务数据库的布尔型关联规则[3],近年来广泛应用于关系数据库。因此,积极开展在关系数据库中挖掘关联规则的相关研究具有重要的意义。
数据挖掘是一个在数据库领域中占比较重要地位的领域,国内外数据挖掘的发展趋势及其研究方向主要有知识发现方法的研究及其应用。目前大部分有关数据挖掘的研究文章主要集中在数据挖掘的数据总结、分类、聚类、关联规则等方面。关联规则挖掘作为数据挖掘的核心内容之一,近些年来得到了很快的发展,并成为了当今数据挖掘的热点。
2.Apriori 算法概述及研究现状
Apriori 算法是一种最有影响力的挖掘布尔关联规则的频繁项集的算法,它是由Rakesh Agrawal和Ramakrishnan Skrikant提出的。它使用一种称作逐层搜索的迭代方法,k-项集用于探索(k+1)-项集。首先找出频繁1-项集的集合。该集合记作L1。L1 用于找频繁2- 项集的集合L2,而L2 用于找L2,如此下去,直到不能找到k-项集。每找一个Lk需要一次数据库扫描。为提高频繁项集逐层产生的效率,一种称作Apriori性质的重要性质用于压缩搜索空间。其运行定理在于一是频繁项集的所有非空子集都必须也是频繁的,二是非频繁项集的所有父集都是非频繁的。
Apriori算法提出以后,很多研究人员对关联规则的挖掘问题进行了大量研究,特别是对关联规则挖掘算法进行了大量的研究和优化,如Savasere等人设计了一个基于划分的算法,Park等人提出的基于散列的算法,Mannila提出的基于采样的方法,Lin和Dunham提出的反扭曲算法,Brin等提出如何减少扫描数据库
发现频繁项集算法等[4]。
国内目前Apriori算法在应用方面较为成熟,也出现了很多对此算法的改进和优化,但与国外有关关联规则挖掘方法研究相比,我国对数据挖掘的研究相对较晚,有关数据挖掘的研究也只有十几年的时间,主要集中在部分实力相对较强的院校和研究机构,如中国科学院、清华大学、西安交通大学、上海交通大学及国防科技大学等。虽然对关联规则的研究才刚刚起步,但是近几年已经取得了可喜的成果。国内对关联规则挖掘所涉及的研究领域很多,主要集中在求关联规则频繁项集算法的研究、关联规则挖掘的实际应用以及关联规则挖掘理论方面的研究[5~6]。有着重要意义的研究项目有:中国科学院计算机研究所的多策略数据挖掘平台MS Miner系统和复旦大学研制开发的AR Miner系统,目前这两个系统已经在实际应用上取得了一定的成就。
3.关于Apriori算法的几种优化方案
虽然Apriori算法是关联规则挖掘的最经典的算法,它是采用取循序渐进的方式,一层一层地组合出侯选项目集[7],并扫描数据库计算侯选项目集支持度与规则强度。虽然该算法已经将许多不可能成立的侯选项目集事先删除,以减少庞大的计算量,但是仍然需要不少的计算,而且需要多次扫数据库,所以对于在大型数据库系统,该算法的效率仍然不够好。许多学者就如何减少扫描数据库的次数以及减少I/O的负载做出了研究,提出了一些优化的算法。
3.1基于划分的方法
算法先把数据库从逻辑上分成几个互不相交的块,每次单独考虑一个分块并对它生成所有的频集[8~9],然后合并产生的频集生成所有可能的频集,最后计算这些项集的支持度。这里分块的大小选择要使每个分块可放入主存,每个阶段只需被扫描一次。而算法的正确性是由每一个可能的频集至少在某一个分块中是频集保证的。
3.2基于用户感兴趣项集重要性的方法
首先从数据库中利用某些用户感兴趣的项,从数据库的所有项的集合中选择出一个子集作为挖掘对象,然后对数据库进行一次扫描[10~12],实现用事务标识号来表示项目集。在产生项目集后,对项目集中的元素赋以权值,然后利用引入了权