数据挖掘中,Apriori算法讲解
2015-10-24 15:08
246 查看
一般给定一个事务数据库,关联规则挖掘问题就是通过用户指定最小支持度(support)和最小可信度(confidence)来寻找强关联规则的过程。关联规则挖掘问题可以划分成两个子问题,第一,发现频繁项目集,第二,生成关联规则。
一,我讲的这部分是频繁项集的生成,之后还有生成关联规则的部分。Apriori算法是一种关联规则的频繁项算法。
二,它的核心思想是使用候选项集寻找频繁项集。Aprori算法使用一种称为逐层搜索的迭代方法,k-项集用于搜索(k+1)-项集。首先找出所有频繁1-项集L1,然后用L1寻找频繁2-项集L2,然后用L2寻找频繁3-项集L3,以此类推下去,直到不能找到频繁K-项集为终止。
三,Apriori算法的用途
可以用于消费市场价格分析,猜测顾客的消费习惯。
下面,我们可以来看一个关于Aprori算法的例子
其中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算法的缺点:就是会产生大量的候选集和可能需要重复扫描数据库。
一,我讲的这部分是频繁项集的生成,之后还有生成关联规则的部分。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 |
第一步:生成候选集并通过扫描数据库得到它们的支持数,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算法的缺点:就是会产生大量的候选集和可能需要重复扫描数据库。
相关文章推荐
- 一看就会Android之SQLite数据库的使用思路
- delphi 指针 认识
- 45
- IDEA Information:java: javacTask: 源发行版 1.7 需要目标发行版 1.7
- [No00002B]知乎精选:如果兔子都在拼命奔跑,乌龟该如何前进
- 微信公众平台开发模式 微信 语音识别 公众平台 消息接口 语音识别
- String类的使用说明
- iOS开发使用MJRefresh进行刷新
- 基于React.js实现webapp的技术实践
- 基于Reactjs实现webapp(加精)
- 基于React.js实现webapp的技术实践
- JSON数据结构学习
- 案例研究:CopyToAsync
- 访问局域网内数据库
- 第三章 使用Servlet处理HTTP响应
- [Leetcode]Palindrome Partitioning
- 第二课servlet的配置及生命周期方法
- Git常用操作
- Synchronized 和 static synchronized 的区别
- 杭电1097--a^b周期最后一位