谈改进的Apriori关联挖掘算法的实践应用
Apriori算法的改进及实例

Apriori算法的改进及实例Apriori算法是数据挖掘中常用的一种频繁项集挖掘算法,它可以用来发现数据集中频繁出现的项集,从而为关联规则挖掘提供支持。
Apriori算法在处理大规模数据集时存在效率低下的问题。
对Apriori算法进行改进是一项重要的工作,本文将介绍一些Apriori算法的改进方法以及相关的实例应用。
一、改进方法1. 基于FP树的改进FP树(Frequent Pattern tree)是一种用于高效挖掘频繁项集的数据结构,它可以帮助减少遍历数据集的次数,从而提高挖掘效率。
基于FP树的改进主要包括两个步骤:首先构建FP树,然后通过挖掘FP树来发现频繁项集。
FP树的构建过程包括以下几个步骤:首先扫描数据集,统计每个项的支持度,并按支持度排序;然后根据排序后的项集构建FP树的头指针表和FP树;最后根据FP树和头指针表来挖掘频繁项集。
基于FP树的改进方法可以减少数据集的遍历次数,从而提高挖掘效率。
FP树的数据结构可以更快地发现频繁项集,从而进一步提高算法的效率。
2. 基于集合的预处理在进行频繁项集挖掘之前,可以先对数据集进行一些预处理操作,以减少数据集的规模。
预处理过程可以包括去除低支持度的项,合并相似的项,转换数据格式等操作。
通过预处理,可以减少不必要的计算,从而提高算法的效率。
针对大规模数据集的频繁项集挖掘问题,可以采用并行计算的方法来提高算法的效率。
通过并行计算,可以同时处理多个数据块,从而减少算法的运行时间。
二、实例应用下面我们将通过一个实例来演示Apriori算法的改进及其实际应用。
假设我们有一个交易数据集,其中包括多个交易记录,每条记录表示一次购买行为,包括多个商品。
我们的目标是挖掘出频繁出现的商品组合,以及它们之间的关联规则。
通过以上改进方法的应用,我们可以更高效地挖掘频繁项集,并发现商品之间的关联规则,从而为商家提供更准确的销售策略,为消费者提供更个性化的购物推荐。
Apriori算法是一种常用的频繁项集挖掘算法,但在处理大规模数据集时存在效率低下的问题。
Apriori算法的改进及实例

Apriori算法的改进及实例【摘要】随着数据规模的不断增大,传统的Apriori算法在处理大规模数据集时性能较低。
为了解决这一问题,研究者们提出了多种改进策略。
本文针对Apriori算法的改进及实例进行了研究和探讨。
首先介绍了使用FP-growth算法替代Apriori算法的改进方法,其能够显著提高算法的效率。
其次讨论了剪枝策略的优化,通过精细化的剪枝方法可以减少计算时间。
对并行化处理进行了探讨,使得算法能够更好地应对大规模数据集。
通过实例分析,展示了基于FP-growth算法的关联规则挖掘和优化的剪枝策略在市场篮分析中的应用。
结论部分指出了不同场景下的改进策略对提高算法效率和精度的重要意义。
通过这些改进措施,Apriori算法在处理大规模数据集时将得到更好的应用和推广。
【关键词】关键词:Apriori算法、FP-growth算法、剪枝策略、并行化处理、关联规则挖掘、市场篮分析、大规模数据集、效率、精度1. 引言1.1 Apriori算法的改进及实例Apriori算法是一种经典的关联规则挖掘算法,它通过逐层扫描数据集来发现频繁项集,并基于频繁项集生成关联规则。
随着数据规模的不断增大,Apriori算法在处理大规模数据集时面临着一些效率和性能上的挑战。
为了克服这些挑战,研究者们提出了许多针对Apriori算法的改进方法。
一种常见的改进方法是使用FP-growth算法来替代Apriori算法。
FP-growth算法利用树结构存储数据集信息,减少了对数据集的多次扫描,从而提高了算法的效率。
剪枝策略的优化也是改进Apriori算法的一个重要方向。
通过优化剪枝策略,可以减少频繁项集的生成数量,进而提升算法的性能。
针对多核处理器的并行化处理也是一种改进Apriori算法的方法。
通过将数据集分割成更小的子集,可以实现并行处理,从而加快算法的运行速度。
在接下来的实例部分,我们将分别介绍基于FP-growth算法的关联规则挖掘实例以及优化的剪枝策略在市场篮分析中的应用实例,展示这些改进方法在实际应用中的效果和优势。
Apriori算法在关联规则挖掘中的应用

Apriori算法在关联规则挖掘中的应用随着互联网时代的到来,数据规模呈现指数级增长,为了从海量数据中挖掘出有用的信息,数据挖掘应运而生。
而关联规则挖掘作为数据挖掘中的一种常用技术,已经得到了广泛的应用。
在关联规则挖掘中,Apriori算法是一种比较典型的算法,它能够有效地从大规模的数据中挖掘出所有相关的规则。
一、Apriori算法原理Apriori算法是一种基于频繁项集的挖掘方法。
该算法的基本思想是:若一个项集是频繁项集,那么它的所有子集也都是频繁项集。
这一性质被称为Apriori原理。
Apriori算法的具体步骤如下:1. 找到数据集中所有的频繁1项集;2. 基于频繁1项集,生成所有的候选2项集,并计算它们的支持度;3. 去掉支持度低于设定阈值的候选2项集,得到所有的频繁2项集,并用它们生成候选3项集;4. 重复2、3步骤,直到所有的频繁项集都被发现为止。
二、Apriori算法在关联规则挖掘中的应用在关联规则挖掘中,Apriori算法的应用比较广泛,它可以帮助我们发现不同商品之间的相关性,从而为商家提供更好的销售策略。
例如,一个超市可以通过Apriori算法发现女性购买了某种化妆品,那么很有可能她们还会购买同品牌的其他化妆品,进而为他们提供相关的优惠策略,吸引更多的女性消费者。
在具体实践中,关联规则挖掘需要先确定最小支持度和最小置信度阈值。
最小支持度是指在数据集中出现某个项集的次数占总记录数的百分比,最小置信度是指某条规则被满足的概率。
当设定好这两个阈值后,Apriori算法就可以从数据集中发现频繁项集和关联规则。
三、Apriori算法的优缺点1. 优点:Apriori算法能够有效地挖掘出大规模数据中的相关规则,特别是在数据量较小的情况下,运行效果非常显著。
2. 缺点:Apriori算法存在一定的问题,如计算频繁项集时,需要扫描整个数据集,需要的时间和硬件资源较多,计算效率并不高。
此外,对于大规模数据集,在频繁项集的生成和搜索上,Apriori算法存在较大的局限性。
Apriori算法的改进及实例

Apriori算法的改进及实例Apriori算法是一种用于挖掘频繁项集的经典算法,它通过生成候选项集和剪枝的方式来减少搜索空间,从而高效地找到频繁项集。
随着数据规模的不断增大,Apriori算法的效率和性能也受到了挑战。
研究人员们提出了许多改进的方法,以提高Apriori算法的效率和性能。
本文将介绍一些Apriori算法的改进和实例。
1. Apriori算法改进之一:FP-growth算法FP-growth算法是一种基于树结构的频繁项集挖掘算法,它通过构建一棵FP树(频繁模式树)来表示数据集,从而避免了生成候选项集和多次扫描数据集的过程。
FP-growth算法的思想是先构建出数据集的FP树,然后利用FP树来挖掘频繁项集,从而避免了Apriori算法中生成候选项集的过程,大大提高了算法的效率。
下面是一个简单的FP-growth算法的实例:假设有如下的数据集:{1, 2, 3, 4},{1, 2, 4},{1, 2},{2, 3, 4},{2, 3},{3, 4},{2, 4}首先构建数据集的FP树:1) 第一次扫描数据集,统计每个项的支持度,得到频繁1项集{1, 2, 3, 4}和支持度{4, 7, 4, 6};2) 对频繁1项集根据支持度进行排序{4, 7, 6, 4},得到频繁1项集的顺序{3, 1, 4, 2};3) 第二次扫描数据集,创建FP树;4) 根据数据集创建FP树如下图所示:2/| \1 3 4| |4 4FP树的根节点是空集,根据第一次扫描数据集得到频繁1项集的顺序,依次插入树中。
接下来利用FP树来挖掘频繁项集:1) 首先从FP树的叶子节点开始,对于每一个项头表(item header table)中的项,按照条件模式基的方式来获取频繁项集;2) 对于每一个项头表中的项,从叶子节点到根节点回溯,得到条件模式基;3) 对于每一个条件模式基,利用条件FP树来获取频繁项集;4) 依次获取频繁项集{1, 2, 3, 4}、{2, 3, 4}、{2, 4}。
Apriori算法的改进与应用

摘 要
针 对 数 据 挖 掘 中 关联 规 则 中 Ap r i o r i 算 法会 产 生庞 大 的 候 选 项 集 和 对 数 据 库 的扫 描 时计 算机 会 承 担 较 大 的 I / O 开销 等 问题 , 提 出 了一种 改进 方 法 。该 方 法通 过 对 候 选 项 集 的 先 验 剪 枝 和 对 数 据 库 各 项 集进 行 监 视 优 化 , 从 而 动 态 减 少 扫描 项 集数 目, 使 每 次扫 描 数 据 库 都 是 精 简 高效 的 。 实验 证 明 了改进 算 法 能 有效 提 高挖 掘 速 率 。 关键词 : 数据挖掘 , 关 联规 则 , A p r i o r i 算 法
A p r i o r i 算 法 主 要 存 在 以下 性 能 瓶 颈 问题 :
1 . 1 A p r i o r i 算法 思想 Ap r i o r i 算 法 是 挖 掘 频繁 项 集 的基 本 算 法 ,它 利 用 一 个 层 次 顺 序搜 索 的循 环 方 法 来 完 成 频 繁项 集 的 挖 掘 工 作 。 该 算 法 将 发 现 关 联 规则 的过 程 分 为两 步 : 第一步通过迭代 , 检 索 出 事 务 数 据
ma d e t h e s c a n n i n g i s a l wa y s s i mp l i f i e d a n d e f i c i e n t . T h e e x p e r i me n t p r o v e s t h a t t h e i mp r o v e d a l g o r i t h m c a n e f e c t i v e l y i m—
A p r i o r i 算 法 的 改 进 与 应 用
Apriori算法在关联规则挖掘中的实践

Apriori算法在关联规则挖掘中的实践随着数据量的不断增加,数据挖掘技术越来越受到企业和学术界的关注。
关联规则挖掘是其中的一项重要技术,它可以用来发现数据集中不同项之间的相关性,从而帮助企业做出更加明智的决策。
而Apriori算法,则是目前最为成熟、最为常用的关联规则挖掘算法之一。
Apriori算法的基本思想是,利用“先验知识”的方式来发现频繁项集,然后根据频繁项集产生关联规则。
这种算法最初被用于市场分析领域,用于发现顾客购买行为之间的规律。
但是随着数据挖掘技术的发展,Apriori算法已经被广泛应用于各个领域。
在实际应用中,Apriori算法通常需要解决的一个问题是如何选择支持度和置信度的阈值。
支持度指的是包含该项集的事务数与总事务数之间的比例,而置信度则指的是在条件项集的前提下出现该项集的概率。
在实际应用中,这两个参数的选择通常需要根据具体情况来确定。
以下是本文对于Apriori算法在关联规则挖掘中的实践经验进行的总结:一、数据预处理在进行关联规则挖掘之前,我们需要先进行数据预处理。
具体来说,我们需要将原始数据转化为适合于关联规则挖掘的形式。
常用的方式有使用独热编码,将数据转化为二进制形式,或者使用TF-IDF算法将数据转化为权重形式。
二、参数的选择在进行关联规则挖掘的过程中,我们需要根据具体情况来选择支持度和置信度的阈值。
如果要发现更多的关联规则,那么支持度和置信度的阈值可以设置得比较低,但是需要注意的是,如果设置得过低,会导致出现大量无意义的关联规则。
在实际应用中,我们通常会根据具体情况来调整这些参数,以达到更好的效果。
三、关联规则的生成在得到频繁项集之后,我们需要根据它们来生成关联规则。
关联规则是指,当一个项集出现时,另外一个项集也会出现的规律。
具体来说,我们通常会使用关联规则的置信度作为其可信度的度量。
如果置信度很高,则说明这个关联规则比较可靠。
四、关联规则的优化在得到初始的关联规则之后,我们需要对其进行进一步的优化。
Apriori算法的改进及实例
Apriori算法的改进及实例
Apriori算法是一种数据挖掘中经典的关联规则挖掘方法。
它被广泛用于挖掘大量数据中的隐式关联,从而发现购物篮(market basket)分析中的频繁项集和关联规则。
随着数据处理能力和分析能力的不断提升,Apriori算法也不断出现改进版本,使其在实际的商业领域中有更好的应用和发挥。
1. 算法模型的改进
Apriori算法在计算复杂度方面有一定的缺陷。
若数据集是大量的,则计算费时会变得很长。
而如何加快Apriori算法的运算,也成为学习者所探讨的问题之一。
改进的Apriori算法通过层次划分处理数据,来加快其处理速度,从而增强其在实际应用中的可行性。
2. Apriori算法的改进实例
例如,若采用层次划分的Apriori算法来挖掘购物篮(market basket)分析中的频繁项集和关联规则,首先可以将数据集根据项数进行划分。
具体而言,若某个项集有n个项,则可以将其划分为n个子集,每个子集的项数均小于n。
然后,用Apriori算法计算每个子集中的支持度,再综合其结果,用Apriori算法得出最终的结果。
这样,可以大大提高Apriori算法的运算效率,从而加快关联规则的挖掘过程。
此外,其他对Apriori算法的改进还包括增加处理噪声数据等方法。
比如,人们可以使用深度学习和模式发现方法在做Apriori算法改进时,来处理杂讯和非结构型数据,以便找出更准确的频繁项集和关联规则。
如果能够成功地完成这项改进,将更加方便地挖掘大规模的市场数据,使得购买者与销售者之间的贴合度更加接近,以便更有效地挖掘出商业价值。
论文:谈改进的Apriori关联挖掘算法的实践应用(1)概要
论文:谈改进的Apriori关联挖掘算法的实践应用(1)本文介绍了数据挖掘技术在图书馆中的应用,并运用改进的Apriori关联挖掘算法对安徽省图书馆自动化系统中读者流通库进行挖掘,并对挖掘出的结果及其意义进行评价,从而为图书馆读者管理、图书资源的采购提供决策支持。
关键词:数据挖掘 Apriori算法图书馆管理读者管理数据挖掘技术在商业领域内的应用给图书馆带来了很大的启发。
图书馆的数据库可以运用数据挖掘技术中的关联规则分析、聚类分析、决策树、时间序列分析等数据挖掘方法,以找出数据库中蕴藏的对于图书馆管理有用的潜在规则,并且通过描述和预测,为图书馆的图书采购、读者服务、馆藏目录设置等管理工作提供决策支持。
关联规则是与多数人想象的挖掘过程中最相近的一种数据挖掘形式,即寻找在同一事件中出现的不同项的相关性。
关联规则的研究有助于发现数据库中不同商品间的联系,找出顾客购买行为模式。
在图书馆运用关联规则分析可以细分出读者群,根据其借阅情况提供不同的服务,为图书馆的管理决策提供参考。
关联规则的核心算法是Apriori算法。
关联规则的基本概念及算法挖掘流通借阅事务数据库中所有的关联规则的问题可以被划分成如下两个子问题:找出所有具有最小支持度的项集(即频繁项集),可用Apriori算法来找出频繁项集。
由频繁项集产生强关联规则,对于每一个频繁项集I,找出其中所有的非空子集,然后,对于每一个这样的子集a,如果support(I)与support(a)的比值大于最小置信度,则存在规则a=>(I-a)。
(一)关联规则算法关联规则的挖掘主是在数据库中找出支持用户指定的最小支持度S和最小置信度C的关联规则,从而指导人们的一些管理决策。
目前,关联规则的挖掘方法主是找出数据库中的频繁项集,然后由频繁项集产生关联规则。
(二)Aprior算法Apriori算法是一种挖掘布尔关联规则的频繁项集的算法,它主是利用逐层搜索的迭代方法来寻找数据库中频繁出现的项集。
改进型Apriori算法在犯罪关联分析中的应用
1 . 1 A p r i o r i 算法
据管理 国际会 议上提 出的, 它是一种最具影响挖掘关联规则频
( 4 )r e t u r n f a l s e ;
. 2 关联 规则 的产 生 A p r i o r i 算法 , 是A g r a w a 1 . R 、 I m i e l i h s k i . T 等人在1 9 9 3 数 1
( 8 ))
( 9 )r e t u r n C k ;
P r o c e d ur e h a s k - i t e f r e q u e n t ( k - 1 ) 一 i t e m s e t s ) ( 1 )f o r e a c h ( k - 1 ) 一 s u b s e t s o f C
( 2 )i f S! ∈L k - 1 t h e n ( 3 )r e t u r n t r u e ;
关联规则挖掘核心算法为著名的A p r i o r i 算法。 当然 , 此后
出现 了一些相关算法 , 诸 ̄ N D I C 算法 …、 D L G 算法 和D H P 算法 等, 都是基于A p r i o r i 算法做了改进或优化而成的。
数表 示
C o n f e r e n c e( A = > B ) : P( B l A ) = s u p p o r t — c o u n t( A + B ) /
s u p p o r t — c o u n t( A )
s u p p o r t t h r e s h o l d ;
O u t p u t :L ,f r e q u e n t i t e m s e t s i n D M e t h o d:
Apriori算法的改进及实例
Apriori算法的改进及实例Apriori算法是数据挖掘中常用的关联规则挖掘算法之一,它能够发现数据集中频繁出现的项集及其关联规则。
原始的Apriori算法在处理大规模数据时存在效率低下的问题,因此研究人员提出了许多改进和优化的方法,以提高算法的性能和效率。
本文将介绍Apriori算法的改进方法,并通过实例进行演示。
一、Apriori算法的基本原理Apriori算法是一种基于频繁项集的挖掘方法,它能够从数据集中找出频繁项集及其关联规则。
算法的基本原理是利用Apriori原理,即如果一个项集是频繁的,那么它的所有子集也一定是频繁的。
根据这一原理,算法通过迭代的方式逐步生成频繁项集,然后根据支持度和置信度等指标来发现关联规则。
具体的算法流程如下:1. 首先扫描事务数据库,统计每个项的支持度,并找出频繁1-项集;2. 然后利用频繁1-项集生成候选2-项集,并通过扫描事务数据库统计每个候选2-项集的支持度,筛选出频繁2-项集;3. 依次类推,直到没有新的频繁k-项集生成为止,最后根据频繁项集生成关联规则,并计算它们的置信度。
1. 基于查找表的改进原始的Apriori算法需要多次扫描数据集,统计项集的支持度。
为了避免重复扫描数据集,可以使用查找表来存储项集的支持度信息。
通过构建一个查找表,可以在一次扫描事务数据库后,快速获取项集的支持度,从而提高算法的效率。
2. 剪枝技术的优化Apriori算法在生成候选项集和频繁项集时,采用了自连接和剪枝的技术。
原始的剪枝方法可能会产生大量的候选项集,导致计算复杂度高。
研究人员提出了一些剪枝技术的优化方法,如动态剪枝、预处理剪枝等,以减少候选项集的数量,提高算法的效率。
3. 多层次的数据表示对于大规模数据集,可以采用多层次的数据表示方法,将数据集划分成多个层次,每个层次都是一个粒度较小的子集。
这样可以减少数据集的规模,提高算法的处理效率。
4. 并行化处理随着计算机硬件的发展,可以采用并行化处理的方式来加速Apriori算法的执行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
谈改进的Apriori关联挖掘算法的实践应用本文介绍了数据挖掘技术在图书馆中的应用,并运用改进的Apriori关联挖掘算法对安徽省图书馆自动化系统中读者流通库进行挖掘,并对挖掘出的结果及其意义进行评价,从而为图书馆读者管理、图书资源的采购提供决策支持。
关键词:数据挖掘Apriori算法图书馆管理读者管理数据挖掘技术在商业领域内的应用给图书馆带来了很大的启发。
图书馆的数据库可以运用数据挖掘技术中的关联规则分析、聚类分析、决策树、时间序列分析等数据挖掘方法,以找出数据库中蕴藏的对于图书馆管理有用的潜在规则,并且通过描述和预测,为图书馆的图书采购、读者服务、馆藏目录设置等管理工作提供决策支持。
关联规则是与多数人想象的挖掘过程中最相近的一种数据挖掘形式,即寻找在同一事件中出现的不同项的相关性。
关联规则的研究有助于发现数据库中不同商品间的联系,找出顾客购买行为模式。
在图书馆运用关联规则分析可以细分出读者群,根据其借阅情况提供不同的服务,为图书馆的管理决策提供参考。
关联规则的核心算法是Apriori算法。
关联规则的基本概念及算法挖掘流通借阅事务数据库中所有的关联规则的问题可以被划分成如下两个子问题:找出所有具有最小支持度的项集(即频繁项集),可用Apriori算法来找出频繁项集。
由频繁项集产生强关联规则,对于每一个频繁项集I,找出其中所有的非空子集,然后,对于每一个这样的子集a,如果support(I)与support(a)的比值大于最小置信度,则存在规则a=>(I-a)。
(一)关联规则算法关联规则的挖掘主要是在数据库中找出支持用户指定的最小支持度S和最小置信度C的关联规则,从而指导人们的一些管理决策。
目前,关联规则的挖掘方法主要是找出数据库中的频繁项集,然后由频繁项集产生关联规则。
(二)Aprior算法Apriori算法是一种挖掘布尔关联规则的频繁项集的算法,它主要是利用逐层搜索的迭代方法来寻找数据库中频繁出现的项集。
主要步骤是:第一步,产生频繁1-项集L1,扫描数据库D,出现在D中各个数据项的集合就是频繁1-项候选项集C1,并统计出每个数据项出现的次数,次数大于最小支持计数(预先)定义的项的集合就是频繁1-项集L1;第K步,产生频繁K-项集Lk,利用上一步产生的频繁(K-1)-项集Lk-1,与自己连接产生K-项集候选集Ck,扫描数据库事务库,计算Ck中每个成员出现的次数,将小于最小支持度的候选项删除,最后产生频繁K-项集。
算法:Apriori使用根据候选生成的逐层迭代找出频繁项集输入:流通借阅数据库D;最要支持度阈值minsup输出:D中的频繁项集L算法代码:1)L1一所有频繁项集1-项目集;2)for(k=2;Lk≠φ,k++){3)Ck=apriori_gen(Lk-1,minsupport)4)for all C∈Ct do{5)Ct=Subset(Ck,T)6)For all c∈Ct do7)c.count++;8)}9)Lk={c∈Ck|support(c)>=minsup}10)}11)return L={所有的Lk}Apriori算法的第1步找出频繁1-项集的集合L1。
在第2~10步中,Lk-1用于产生候选Ck,以找出Lk。
Apriori过程产生候选,第3步使用Apriori性质删除那些具有非频繁子集的候选,第4步扫描数据库,第5步使用subset函数找出事务中的候选的所有子集,第6步和第7步对每个这样的候选累加计数。
最后,所有满足最小支持度的候选会形成频繁项集L。
Apriori-gen过程Apriori-gen过程由Lk-1产生第K次迭代时的候选项集Ck,该过程描述如下:For each itemset I1∈Lk-1For each itemset I2∈Lk-1If (I1[1]=I2[1])∧(I1[2]=I2[2]∧…∧(I1[K-2]=I2[K-2])∧(I1[K-1 ]=I2 [K-2])∧(I1[K-I]=I2[K-1])Then {c=I[1],I1[2],…I1[K-I],I2[K-1]);Ck=Ck U c;For(c的每个包含k-1个项目的子集s){If(s不属于Fk-1)从Ck中删除C;}Return(Ck);改进的Apriori算法在图书馆的具体实现以安徽省图书馆某年度读者借阅事务库为例,可从图书馆借阅记录中挖掘出形如“读者-图书”强关联规则。
首先要进行数据清洗,只保留属性概念中分层最低层的属性项,将同一个读者的所有借阅记录合并为一条记录。
(一)算法思想在读者借阅记录关联规则挖掘过程中有一些特殊的性质,因为每一个读者借阅记录的长度是固定的,即含有五个单项,前四个是属性值,最后一个是图书分类号,并且要挖掘的规则最后一项必须是图书分类号,且不能出现冲突的属性值或图书分类号。
基于这些特殊性质,在数据挖掘中对Apriori改进算法如下:1)把压缩过的事务集读入内存;2)扫描事务集,找到每一类频繁单项:即频繁的年龄段、频繁的学历、频繁的职称、频繁的职业、频繁的图书分类。
3)把各类频繁的属性单项和频繁的图书分类单项连接成 2 - 候选频繁项集,k = 2。
即生成年龄-图书类,学历-图书类,职业-图书类,职称-图书类,分别生成频繁2项集。
4)检查k-候选频繁项集,记录其支持度和前件的支持度。
频繁项集的连接条件是前n项是为读者属性项,且读者的属性项内容各不相同,最后一项为相同的图书分类项。
5)输出置信度和支持度达到要求的频繁k - 频繁项集。
置信度为支持度除以前件的支持度。
6)用得到k - 频繁项集互相连接得到k+1 - 候选频繁项集。
通过剪枝,可减少连接的频繁项集的个数,提高程序运行的效率。
下面的是剪枝连接的规则:a)如果频繁项集A 和B 最后一项不同的时候不能连接。
b)含有属于同一属性类别的不同单项,则不能连接。
c)频繁项集也不能和自身连接。
d)如果用conf代表前件支持度,那么当min (A.conf,B.conf)/最小支持度candidates;vector patterns;generate2candidates(candidates);// 生成候选2项集while(!candidates.empty())// 当候选项集为空时中止{ verify_candidate(candidates,patterns);// 过滤候选k-1项集,返回用于连接生成候选k项集的列表,同时输出满足所有条件的规则generate_k_candidates(patterns,candidates);// 连接生成候选k项集,准备下一次循环patterns.clear();}}生成K项候选频繁集:inline void Apriori::generate_k_candidates(const vector&patterns,vector&candidates){for(int i = 0;i = minConf_){Items items = Items_method::join_Items(patterns[i].items_,patterns[j].items_);// 连接得到k项集,保存到输出列表candidates.push_back(ItemsCounter(items,0,0));}}(三)算法评价通过上述的介绍,可以看到本算法的思路基本上与Apriori算法保持一致,即它们的共同之处是通过扫描数据得到那些支持度不小于用户给定的最小支持度的频繁项集,但是又有不同之处就是在扫描数据库之前就进行了剪枝,在剪枝后再重新连接扫描数据库,减少了扫描的次数。
在算法效率上,通过数据压缩可将挖掘的数据一次性扫描进入内存中,避免了重复磁盘I/O操作,没有压缩的数据不可能一次性读入内存,从而提高了计算效率;另通过数据压缩减少了每一项字符长度,特别是在比较两项是否相同的时候,需比较的字符数就少了很多,可以提高运算速度。
通过使用数据压缩的方式,节省了内存,减少了候选集比较的时间,从而生成频繁项集速度将更快,同时加入了同属性列只能出现一次和后件必须相同的约束,使得连接次数大大减少,计算复杂度也降低了。
在对图书馆这样的大型数据库而言,这种节省对数据挖掘效率提高的作用就显而易见。
(四)关联规则挖掘结果分析根据以上关联规则挖掘结果分析,可以看到这种算法改进具有一定的实际意义:通过研究读者群体的特征和关系,可以按年龄、学历、职业等因素对读者群体进行分类,也可以进行聚类,把读者群体细分,可以更清楚地了解读者的特点和需求;通过以上挖掘出的规则,进一步了解读者的特点,提高图书馆的吸引力,改进读者服务和提高读者的满意度;可以统计出读者的借阅频率、书籍流通趋势和周期,通过更科学地规划馆藏,提高图书的借阅率;通过分类,对重要的读者提供更优质的服务,从而使读者忠诚度更高;提高图书馆管理效率,提高决策水平,改进服务流程,使图书馆的服务流程更合理,最终提高管理效率;提高读者兴趣度,改善采购水平和质量,购进读者需要的书籍;通过科学规划馆藏目录,提高馆藏借阅率。
总之,Apriori算法能有效地进行关联规则的数据挖掘。
本文根据图书数据挖掘中最后一项是固定的图书分类的特点,提出的改进Apriori算法,是根据图书馆数据特点进行连接和剪枝,生成频繁项集,进一步缩小了挖掘的范围,提高了数据挖掘的效率,使得到的规则更加科学合理。
参考文献:1.朱小栋,郑诚等.关联规则的哈希修剪算法研究.安徽大学学报(自然科学版),2005(7)2.佟强,周园春,阎保平.关联规则挖掘算法.微电子学与计算机,2005(6)。