Apriori簡單運用

https://www.cnblogs.com/molieren/articles/10679277.html
https://www.cnblogs.com/bigmonkey/p/7405555.html
https://www.cnblogs.com/bigmonkey/p/7449761.html

from efficient_apriori import apriori
# 設置數據集
data = [('牛奶','麪包','尿布'),
           ('可樂','麪包', '尿布', '啤酒'),
           ('牛奶','尿布', '啤酒', '雞蛋'),
           ('麪包', '牛奶', '尿布', '啤酒'),
           ('麪包', '牛奶', '尿布', '可樂')]
itemsets, rules = apriori(data, min_support=0.5,  min_confidence=1)  #最小支持度,最小置信度

min_support=0.5表示頻繁項集出現的次數佔一半或者以上,這裏有5次購物,則至少出現3次纔可以。
min_confidence=1表示最小置信度爲1,其實是買了前件,就一定要買後件。

itemsets   # 頻繁項集
{1: {('啤酒',): 3, ('尿布',): 5, ('牛奶',): 4, ('麪包',): 4},
 2: {('啤酒', '尿布'): 3, ('尿布', '牛奶'): 4, ('尿布', '麪包'): 4, ('牛奶', '麪包'): 3},
 3: {('尿布', '牛奶', '麪包'): 3}}

前面1,2,3代表的是頻繁項集的維數,裏面的3,5,4,4等是支持度(大於等於3),即出現的次數。

rules  # 頻繁規則
[{牛奶} -> {尿布}, {麪包} -> {尿布}, {啤酒} -> {尿布}, {牛奶, 麪包} -> {尿布}]

買了牛奶一定會買尿布,買了啤酒一定會買尿布等等,但買了尿布不一定會買啤酒。

data 是個List類型,其中每個值都可以是一個集合。實際上也可以把 data 列表中的每個值由tuple設置爲 List 類型,兩者的運行結果是一樣的。

efficient-apriori 工具包把每一條數據集裏的項式都放到了一個集合中進行運算,並沒有考慮它們之間的先後順序。因爲實際情況下,同一個購物籃中的物品也不需要考慮購買的先後順序。而其他的 Apriori 算法可能會因爲考慮了先後順序,出現計算頻繁項集結果不對的情況。所以這裏採用的是 efficient-apriori 這個工具包。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章