先驗(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):
遍歷資料庫,並且得出不同項(item)的頻數。
這個表被記為c1。
假設這裡的最低支援度為4(min_sup=4)。
表c1裡的e就會被刪除,得到表l1。
利用l1,得出兩個項在資料當中同時出現的頻數(表c2)。
頻數低於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等。
由於學習這個課程的時候是全英文的,因此可能很多翻譯不是很準確,請大家隨意噴。
資料探勘 Apriori演算法
今日資料探勘課學習了apriori演算法,特意總結下,因為自己是大三弱雞,很多地方參考了下面dalao的博文 非常感謝!apriori演算法是一種挖掘關聯規則的頻繁項集演算法,其核心思想是通過候選集生成和情節的向下封閉檢測兩個階段來挖掘頻繁項集。而且演算法已經被廣泛的應用到商業 網路安全等各個領域。...
資料探勘演算法 Apriori演算法
apriori演算法 所以做如下補充 關聯規則 形如x y的蘊涵式,其中,x和y分別稱為關聯規則的先導 antecedent或left hand side,lhs 和後繼 consequent或right hand side,rhs 其中,關聯規則xy,存在支援度和信任度。置信度 在所有的購買了左邊...
資料探勘演算法之 apriori
關聯規則之 apriori演算法 實現 2006年5月 include include typedef struct d node 資料庫d typedef struct c node 候選集 typedef struct l node 頻繁集 c node c 100 100 l node l 1...