1. 程式人生 > >資料探勘:Apriori(先驗)演算法

資料探勘:Apriori(先驗)演算法

介紹

先驗(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等。

由於學習這個課程的時候是全英文的,因此可能很多翻譯不是很準確,請大家隨意噴。