数据挖掘中,Apriori算法讲解

来源:互联网 发布:linux 删除文件夹 编辑:程序博客网 时间:2024/04/30 00:25

一般给定一个事务数据库,关联规则挖掘问题就是通过用户指定最小支持度(support)和最小可信度(confidence)来寻找强关联规则的过程。关联规则挖掘问题可以划分成两个子问题,第一,发现频繁项目集,第二,生成关联规则。

一,我讲的这部分是频繁项集的生成,之后还有生成关联规则的部分。Apriori算法是一种关联规则的频繁项算法。
二,它的核心思想是使用候选项集寻找频繁项集。Aprori算法使用一种称为逐层搜索的迭代方法,k-项集用于搜索(k+1)-项集。首先找出所有频繁1-项集L1,然后用L1寻找频繁2-项集L2,然后用L2寻找频繁3-项集L3,以此类推下去,直到不能找到频繁K-项集为终止。
三,Apriori算法的用途
可以用于消费市场价格分析,猜测顾客的消费习惯。

下面,我们可以来看一个关于Aprori算法的例子

TID Itemset 1 A,B,C,D 2 B,C,E 3 A,B,C,E 4 B,D,E 5 A,B,C,D

其中minsup_count>=2

第一步:生成候选集并通过扫描数据库得到它们的支持数,C1={(A,3),(B,5),(C,4),(D,3),(E,3)},挑选minsup_count>=2的项目集组成1-频繁项集L1={A,B,C,D,E}.

第二步:由L1生成2-候选集并通过扫描数据库得到它们的支持度数,C2={(AB,3),(AC,3),(AD,2),(AE,1),(BC,4),(BD,3),(BE,2),(CD,2),(CE,2),(DE,A)},满足minsup_count>=2的项目集组成频繁2-项集L2={AB,AC,AD,BC,BD,BE,CD,CE}.

第三步:由L2生成3-候选集并通过扫描数据库得到它们的支持度数,C3={(ABC,3),(ABD,2),(BCD,2),(BCE,2),(ACD,2),(ACE,1)},满足minsup_count>=2的项目集组成频繁3-项集L3={ABC,ABD,BCD,BCE,ACD}。

第四步,由L3生成4-候选集并通过扫描数据库得到它们的支持度数,C4={(ABCD,2),(ABCE,1),(BCDE,0)},通过满足minsup_count>=2的项目集组成频繁4-项集L4={ABCD}.

第五步:由L4生成5-候选集C5=空集,L5=空集时,Apriori算法停止。

最终得到所有的频繁项目集为{A,B,C,D,E,AB,AC,AD,BC,BD,BE,CD,CE,ABC,ABD,ACD,BCD,BCE,ABCD}
其中最大的频繁项目集为{ABCD,BCE}.

四,Apriori算法的缺点:就是会产生大量的候选集和可能需要重复扫描数据库。

0 0