数据挖掘:Apriori(先验)算法

来源:互联网 发布:h5响应式建站系统源码 编辑:程序博客网 时间:2024/05/02 04:18

介绍

先验(Apriori)算法是挖掘关联式规则(Association Rules)的经典算法之一。
它的作用就是用来寻找数据当中的强关联式规则(Strong Association Rules)。

强关联式规则是满足最低支持度(minimum support)和最低置信度(minimum confidence)的规则。

规则:
X→Y;X和Y都属于I,且X和Y的交集为空。
支持度(support):
support(X → Y) = P(X U Y)
置信度(confidence):
confidence(X → Y) = P(Y | X)

算法

Database

Step1:

遍历数据库,并且得出不同项(Item)的频数。
这个表被记为C1。

C1

Step2:

假设这里的最低支持度为4(min_sup=4)。
表C1里的E就会被删除,得到表L1。

L1

Step3:

利用L1,得出两个项在数据当中同时出现的频数(表C2)。

C2

Step4:

频数低于4的项都会被删除。

L2

Step5:

利用L2得出C3。

C3

由于C3只有一个项集,而且频数还低于4,所以Apriori算法到此就会终止。
假如C3还有大于最低支持度的项集,那么Apriori算法会继续下去,得到L3,直到Cn不能再产生新的Ln为止。

Step6:

接下来就要从L2当中得到所有的规则。
A→C 和 C→D。
假如这里ACD大于4,可以得到三个不同的规则:
A→CD,C→AD和D→AC。

Step7:

计算不同规则的置信度(confidence)。
公式
Confidence (X → Y) = P(Y|X) = Support_Count (X U Y) / Support_Count (X)
Confidence (A → D) = P(D|A) = Support_Count (A U D) / Support_Count (A) = 2 / 4
Confidence (C → D) = P(D|C) = Support_Count (C U D) / Support_Count (C) = 4 / 6
当置信度大于最低置信度的时候,规则才可以被称为强关联规则(Strong association rules)。
假如这里min_conf=60%,那么C→D是强关联规则,而A→C不是。

总结

Apriori算法不适合被用在大型数据库当中,因为它会产生巨量的候选集(candidate sets),如C2,L2等。

由于学习这个课程的时候是全英文的,因此可能很多翻译不是很准确,请大家随意喷。

原创粉丝点击