海量数据挖掘MMDS week2: 频繁项集挖掘 Apriori算法的改进:基于hash的方法

本文介绍了Apriori算法的改进,包括基于hash的方法,如PCY、Multistage和Multihash算法。这些改进旨在减少在挖掘频繁项集时对内存的需求,尤其是针对大量数据时。PCY算法利用第一步未使用的内存,通过哈希技术减少候选二项集。Multistage算法则通过多次哈希进一步减少候选项对。Multihash算法在一步中使用多个哈希表,以应对特定情况。这些方法对于处理海量数据集的关联规则挖掘具有重要意义。
摘要由CSDN通过智能技术生成

http://blog.csdn.net/pipisorry/article/details/48901217

海量数据挖掘Mining Massive Datasets(MMDs) -Jure Leskovec courses学习笔记之关联规则Apriori算法的改进:基于hash的方法:PCY算法, Multistage算法, Multihash算法

Apriori算法的改进

{All these extensions to A-Priori have the goal of minimizing the number of pairs that actually have to be counted on the second pass.}

当频繁项对的数量比较大时,内存放不下,而这时对频繁项对进行计数时,可能会产生内存抖动,即内存页面频繁换入换出,因为不同的频繁项对计数器可能放在不同的页面上。

Apriori算法的改进算法

这些算法可以用在海量数据上的关联规则挖掘中。

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

基于哈希的算法仍是将所有所有数据放入内存的方法。只要在计算的过程中能够满足算法对内存的大量需求,Apriori算法能够很好的执行。但在计算候选项集时特别是在计算候选项对C2时需要消耗大量内存。针对C2候选项对过大,一些算法提出用来减少C2的大小。这里我们首先考虑PCY算法,这个算法使用了在Apriori算法的第一步里大量没使用的内存。接着,我们考虑Multistage算法,这个算法使用PCY的技巧,但插入了额外的步骤来更多的减少C2的大小。类似的还有Multihash。

(2)基于划分的方法。Savasere等设计了一个基于划分(partition)的算法.这个算法先把数据库从逻辑上分成几个互不相交的块,每次单独考虑一个分块并对它生成所有的频集,然后把产生的频集合并,用来生成所有可能的频集,最后计算这些项集的支持度。这里分块的大小选择要使得每个分块可以被放入主存,每个阶段只需被扫描一次。而算法的正确性是由每一个可能的频集至少在某一个分块中是频集保证的。

(3)基于采样的方法。基于前一遍扫描得到的信息,对此仔细地作组合分析,可以得到一个改进的算法,Mannila等先考虑了这一点,他们认为采样是发现规则的一个有效途径。

Apriori算法回顾

Apriori算法流程步骤图解

数据挖掘概念与技术中对Apriori算法的图解


Apriori算法的内存的使用情况

左边为第一步时的内存情况,右图为第二步时内存的使用情况

pipi

在第一步(对所有item扫描计数,并选出频繁一项集)里,我们只需要两个表,一个用来保存项的名字到一个整数的映射,用这些整数值代表项,一个数组来计数这些整数。

[关联规则与频繁项集挖掘]

皮皮blog



PCY算法(Park-Chen-Yu algorithm)

PCY算法使用了在Apriori算法的第一步里大量没使用的内存,该算法关注在频繁项集挖掘中的第一步有许多内存空间没被利用的情况。如果有数以亿计的项,和以G计的内存,在使用关联规则的第一步里我们将会仅仅使用不到10%的内存空间,会有很多内存空闲。

对Aprior进行改进:第一步扫描

从basket中统计项的个数用于寻找频繁一项集,并从每个basket中产生所有项对,并为项对创建一张hash表,hash表只是统计hash到本桶的项对的个数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值