#バスケット分析(basket analysis)
バスケット分析を使う機会があったので、Python3で簡単に実装したやり方をメモ。
バスケット分析は簡単に言えば「同じカゴに入れられる品物を見つける」ための手法。
pyfpgrowthを使えばすごく簡単
#Code
basket_analysis.py
import pyfpgrowth
#5人分の買い物リストを作成。2とか3とかが商品。それぞれのリストが買い物カゴだと思って欲しい。
buy_list = [[2,3,4,13,11],\
[16,3,4,7,14],\
[9,3,4,1,18],\
[7,12,11,13,3],\
[8,3,5,17,20],\
]
#分析開始
patterns = pyfpgrowth.find_frequent_patterns(buy_list, 3)
rules = pyfpgrowth.generate_association_rules(patterns, 0.7)
print(patterns)
print(rules)
実行結果
{(3,): 5, (4,): 3, (3, 4): 3}
{(4,): ((3,), 1.0)}
ここで気になるのは引数の値。
find_frequent_patternsの__3__は出現回数を表してるっぽい。
(3,): 5 → 「3は5回登場してますよ」
(4,): 3 → 「4は3回登場してますよ」
(3, 4): 3 →「(3,4)のペアは3回登場してますよ」
generate_association_rulesの__0.7__は信頼度。
(4,): ((3,), 1.0) → 「4が来て3が来る信頼度は1.0ですよ」