LINEで送る
Pocket

最近、POSレジのデータをもとに

バスケット分析をしました。

 

バスケット分析は、

アソシエーション分析とも呼ばれ、

買い物カゴに何と何が一緒に

入っていることが多いのかを

分析する手法です。

 

商品分析の手法(ABC分析、アソシエーション分析)

の説明がわかりやすいです。

 

さて、今回このバスケット分析をPython3で行いました。

その時の備忘です。

 

ーーーーー

バスケット分析に使用するライブラリは、

orange3とorange3-assoiate 。

 

pip3 install orange3

pip3 install orange3-associate

で各ライブラリをインストールする。

 

分析するデータは、

以下のような形式でファイルに保存しておく。

 

A,B,C

A,C

B,C,D

D,E,A

 

1行に1つの買い物カゴの中身を書く。

商品は”,”で分ける。

拡張子は.basket

 

ファイル名を data.basket とした場合、

以下のようなコードで分析できる。

 

import sys
import Orange
from orangecontrib.associate.fpgrowth import *tbl = Orange.data.Table(“data.basket”)

X, mapping = OneHot.encode(tbl)

itemsets = dict(frequent_itemsets(X, 5))

rules = association_rules(itemsets, 0.7)

def decode_onehot(d):
items = OneHot.decode(d, tbl, mapping)
return list(map(lambda v: v[1].name, items))

for P, Q, support, confidence in rules:
lhs = decode_onehot(P)
rhs = decode_onehot(Q)
print(f”lhs = {lhs}, rhs = {rhs}, support = {support}, confidence = {confidence}”)

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です