介紹
先驗(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)
算法
Step1:
遍歷數據庫,并且得出不同項(Item)的頻數。
這個表被記為C1。
Step2:
假設這里的最低支持度為4(min_sup=4)。
表C1里的E就會被刪除,得到表L1。
Step3:
利用L1,得出兩個項在數據當中同時出現的頻數(表C2)。
Step4:
頻數低于4的項都會被刪除。
Step5:
利用L2得出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等。
由于學習這個課程的時候是全英文的,因此可能很多翻譯不是很準確,請大家隨意噴。