十分鐘掌握關聯規則的數學原理

關聯規則分析也稱為購物籃分析,最早是為了發現超市銷售數據庫中不同商品之間的關聯關係。例如,哪些商品可能會在一次購物中同時購買,可能會發現購買了麵包的顧客也有可能購買牛奶,這就導出了一個關聯規則,'麵包=>牛奶',其中麵包稱為規則前項,牛奶稱為規則後項,通過對面包降價銷售,而適當提高牛奶售價,關聯銷售的牛奶就可能增加超市整體的利潤。

十分鐘掌握關聯規則的數學原理

1,關聯規則和頻繁項集

(1)項集

項集是項的集合。包含K個項的項集稱為K項集,如集合{牛奶,麵包,糖果}就是一個3項集。

(2)關聯規則的一般形式

項集A、B同時發生的概率稱為關聯規則的支持度(也稱相對支持度)

Support(A=>B)=P(A U B)

項集A發生,則項集B發生的概率為關聯規則的置信度

Confidence(A=>B)=P(B|A)

(3)最小支持度和最小置信度

最小支持度是用戶自定義的衡量支持度的一個閾值,表示項目集在統計意義上的最低重要性

最小置信度也是用戶定義的衡量置信度的一個閾值,表示關聯規則的可靠性。

同時滿足最小支持度和最小置信度的規則稱為強關聯

(4)頻繁項集

如果項集K的相對支持度滿足定義的最小支持度閾值,則K是頻繁項集,通常記作K

(5)支持度計數

項集A的支持度計數是事務集中包含項集A的事物個數,事務集總計數N

則A=>B的支持度和置信度可以計算如下:

Support(A=>B)=count(AnB)/N

Confidence(A=>B) = count(AnB)/count(A)

十分鐘掌握關聯規則的數學原理

2,算法原理:

Apriori算法 是最常見的關聯規則算法,也是最經典的挖掘的頻繁項集算法,其核心思想是通過連接產生候選及其支持度然後通過剪枝生產頻繁項集,再利用得到的最大頻繁項集與設定的最小置信度閾值生成強關聯規則。

性質:頻繁項集的所有非空子集也是頻繁項集

算法流程示例說明:

結合餐飲業來說明,整理的事務數據如下,a,b,c,d,e都是代表一種菜品,設定支持度為0.3

十分鐘掌握關聯規則的數學原理

查找最大K項集

1)算法掃描所有的事務,事務中每一項都是候選1項集的集合C1的元素。計算每一項支持度,例如:P(a)=7/10=0.7

2)對C1中個項集的支持度與設定的最小支持度閾值進行比較,保留大於或等於該閾值的項,得1項頻繁集L1

3)掃描所有事務,L1與L1連接得到候選2項集C2,計算每一項的支持度,例如:P(a,b)=5/10=0.5

4)對C2中各項集的支持度以設定的閾值比較,保留大於或小於該閾值的項,得到2項頻繁集L2

5)掃描所有的事務,L2與L1連接得到候選3項集C3,計算每一項的支持度,如 P(a,b,c) = 3/10=0.3

接下來剪枝,L2與L1連接所有的項集為()

6)對C3中各項集的支持度與設定的最小支持度進行比較,大於或等於閾值則保留,小於閾值則捨棄,得3項頻繁集L3

7)L3與L1連接得候選4項集C4,剪枝之後為空集,最後得到最大3項頻繁集{a,b,c},{a,c,e}

注:L1,L2,L3都是頻繁項集,L3是最大頻繁項集

十分鐘掌握關聯規則的數學原理

算法流程圖

由頻繁集產生關聯規則

置信度Confidence(A=>B)=count(AnB)/count(A) = Support(AnB)/Support(A)

Python輸出的關聯規則如下:

十分鐘掌握關聯規則的數學原理

結果解釋:

a—b表示,客戶同時點了菜品a和b的概率是50%,點了a,再點b的概率是71.4286%

a—b—c表示,客戶同時點a,b,c的概率是30%,點了a,b再點c的概率是60%


分享到:


相關文章: