Algorithm Apriori算法
我以前多次听说过Apriori算法,但从来没有时间或机会深入研究它,有人能简单地向我解释一下这个算法的工作原理吗?另外,一个基本的例子会让我更容易理解。好吧,我假设你读过维基百科的条目,但是你说“一个基本的例子会让我更容易理解”。维基百科就是这样,所以我假设你还没有读过,并建议你读Algorithm Apriori算法,algorithm,apriori,Algorithm,Apriori,我以前多次听说过Apriori算法,但从来没有时间或机会深入研究它,有人能简单地向我解释一下这个算法的工作原理吗?另外,一个基本的例子会让我更容易理解。好吧,我假设你读过维基百科的条目,但是你说“一个基本的例子会让我更容易理解”。维基百科就是这样,所以我假设你还没有读过,并建议你读 阅读文章。请参阅(免费访问)或。后者给出了算法的详细描述,以及如何获得优化实现的细节。Apriori的最佳简介可从本书下载: 你可以免费下载第六章,它对Apriori的解释非常清楚 此外,如果您想下载Java版本的
阅读文章。请参阅(免费访问)或。后者给出了算法的详细描述,以及如何获得优化实现的细节。Apriori的最佳简介可从本书下载: 你可以免费下载第六章,它对Apriori的解释非常清楚 此外,如果您想下载Java版本的Apriori和其他用于频繁项集挖掘的算法,可以查看我的网站: Apriori算法 它是数据集中频繁模式挖掘的候选生成和测试方法。有两件事你必须记住 先验修剪原则-如果任何项目集不经常出现,则不应生成/测试其超集 Apriori属性-只有当其
k-itemset
子集的每个成员都是频繁的时,给定的(k+1)-itemset
才是候选(k+1)-itemset
现在,这里是apriori算法,分为4步
1-itemset
k
频繁项集生成长度k+1
候选项集minu sup
为2
。术语支持是存在/包含某个项目集的事务数
事务数据库
tid | items
-------------
10 | A,C,D
20 | B,C,E
30 | A,B,C,E
40 | B,E
现在,让我们通过第一次扫描数据库来创建候选1-itemsets
。它被简单地称为C_1
的集合,如下所示
itemset | sup
-------------
{A} | 2
{B} | 3
{C} | 3
{D} | 1
{E} | 3
itemset | sup
-------------
{A} | 2
{B} | 3
{C} | 3
{E} | 3
itemset | sup
-------------
{A,B} | 1
{A,C} | 2
{A,E} | 1
{B,C} | 2
{B,E} | 3
{C,E} | 2
itemset | sup
-------------
{A,B,C} | 1
{A,B,E} | 1
{A,C,E} | 1
{B,C,E} | 2
itemset | sup
-------------
{B,C,E} | 2
Rule | supp | conf | lift
-------------------------------------------
B -> C & E | 50% | 66.67% | 1.33
E -> B & C | 50% | 66.67% | 1.33
C -> E & B | 50% | 66.67% | 1.77
B & C -> E | 50% | 100% | 1.33
E & B -> C | 50% | 66.67% | 1.77
C & E -> B | 50% | 100% | 1.33
如果我们用min\u sup
测试这一点,我们可以看到{D}
不满足2
的min\u sup
。因此,它不会包含在频繁的1-itemset
中,我们将其称为L_1
的集合,如下所示
itemset | sup
-------------
{A} | 2
{B} | 3
{C} | 3
{D} | 1
{E} | 3
itemset | sup
-------------
{A} | 2
{B} | 3
{C} | 3
{E} | 3
itemset | sup
-------------
{A,B} | 1
{A,C} | 2
{A,E} | 1
{B,C} | 2
{B,E} | 3
{C,E} | 2
itemset | sup
-------------
{A,B,C} | 1
{A,B,E} | 1
{A,C,E} | 1
{B,C,E} | 2
itemset | sup
-------------
{B,C,E} | 2
Rule | supp | conf | lift
-------------------------------------------
B -> C & E | 50% | 66.67% | 1.33
E -> B & C | 50% | 66.67% | 1.33
C -> E & B | 50% | 66.67% | 1.77
B & C -> E | 50% | 100% | 1.33
E & B -> C | 50% | 66.67% | 1.77
C & E -> B | 50% | 100% | 1.33
现在,让我们第二次扫描数据库,并生成候选2-itemsets
,我们简单地称之为cU2
集,如下所示
itemset | sup
-------------
{A} | 2
{B} | 3
{C} | 3
{D} | 1
{E} | 3
itemset | sup
-------------
{A} | 2
{B} | 3
{C} | 3
{E} | 3
itemset | sup
-------------
{A,B} | 1
{A,C} | 2
{A,E} | 1
{B,C} | 2
{B,E} | 3
{C,E} | 2
itemset | sup
-------------
{A,B,C} | 1
{A,B,E} | 1
{A,C,E} | 1
{B,C,E} | 2
itemset | sup
-------------
{B,C,E} | 2
Rule | supp | conf | lift
-------------------------------------------
B -> C & E | 50% | 66.67% | 1.33
E -> B & C | 50% | 66.67% | 1.33
C -> E & B | 50% | 66.67% | 1.77
B & C -> E | 50% | 100% | 1.33
E & B -> C | 50% | 66.67% | 1.77
C & E -> B | 50% | 100% | 1.33
如您所见,{A,B}
和{A,E}
项目集不满足2
的minu-sup
,因此它们将不包括在频繁的2-itemset
,L\u 2
itemset | sup
-------------
{A,C} | 2
{B,C} | 2
{B,E} | 3
{C,E} | 2
现在,让我们对数据库进行第三次扫描,获得候选的3-itemsets
,C_3
,如下所示
itemset | sup
-------------
{A} | 2
{B} | 3
{C} | 3
{D} | 1
{E} | 3
itemset | sup
-------------
{A} | 2
{B} | 3
{C} | 3
{E} | 3
itemset | sup
-------------
{A,B} | 1
{A,C} | 2
{A,E} | 1
{B,C} | 2
{B,E} | 3
{C,E} | 2
itemset | sup
-------------
{A,B,C} | 1
{A,B,E} | 1
{A,C,E} | 1
{B,C,E} | 2
itemset | sup
-------------
{B,C,E} | 2
Rule | supp | conf | lift
-------------------------------------------
B -> C & E | 50% | 66.67% | 1.33
E -> B & C | 50% | 66.67% | 1.33
C -> E & B | 50% | 66.67% | 1.77
B & C -> E | 50% | 100% | 1.33
E & B -> C | 50% | 66.67% | 1.77
C & E -> B | 50% | 100% | 1.33
您可以看到,{A,B,C}
,{A,B,E}
和{A,C,E}
不满足2
的minu-sup
。因此,它们将不包括在频繁的3项集
,L_3
中,如下所示
itemset | sup
-------------
{A} | 2
{B} | 3
{C} | 3
{D} | 1
{E} | 3
itemset | sup
-------------
{A} | 2
{B} | 3
{C} | 3
{E} | 3
itemset | sup
-------------
{A,B} | 1
{A,C} | 2
{A,E} | 1
{B,C} | 2
{B,E} | 3
{C,E} | 2
itemset | sup
-------------
{A,B,C} | 1
{A,B,E} | 1
{A,C,E} | 1
{B,C,E} | 2
itemset | sup
-------------
{B,C,E} | 2
Rule | supp | conf | lift
-------------------------------------------
B -> C & E | 50% | 66.67% | 1.33
E -> B & C | 50% | 66.67% | 1.33
C -> E & B | 50% | 66.67% | 1.77
B & C -> E | 50% | 100% | 1.33
E & B -> C | 50% | 66.67% | 1.77
C & E -> B | 50% | 100% | 1.33
现在,最后,我们可以计算项目集{B,C,E}
生成的关联/相关规则的支持(supp)
、置信度(conf)
和提升(兴趣值)
值,如下所示
itemset | sup
-------------
{A} | 2
{B} | 3
{C} | 3
{D} | 1
{E} | 3
itemset | sup
-------------
{A} | 2
{B} | 3
{C} | 3
{E} | 3
itemset | sup
-------------
{A,B} | 1
{A,C} | 2
{A,E} | 1
{B,C} | 2
{B,E} | 3
{C,E} | 2
itemset | sup
-------------
{A,B,C} | 1
{A,B,E} | 1
{A,C,E} | 1
{B,C,E} | 2
itemset | sup
-------------
{B,C,E} | 2
Rule | supp | conf | lift
-------------------------------------------
B -> C & E | 50% | 66.67% | 1.33
E -> B & C | 50% | 66.67% | 1.33
C -> E & B | 50% | 66.67% | 1.77
B & C -> E | 50% | 100% | 1.33
E & B -> C | 50% | 66.67% | 1.77
C & E -> B | 50% | 100% | 1.33
谢谢,事实上我以前读过wiki页面,但当时它的内容非常糟糕,现在它甚至包含了一个真实世界的示例!=)这是一个真实的答案