マーケット・バスケット分析をやってみた #alteryx #10 | Alteryx Advent Calendar 2016
こんにちは!DI部大矢です。
当エントリは『Alteyx Advent Calendar 2016』の10日目のエントリです。
今回はAlteryxでマーケット・バスケット分析をやってみました。
マーケット・バスケット分析は、購買履歴データを元に、一緒に買われている商品を見つけるような分析です。 「おむつを買った人は同時にビールを買うことが多い」といったことが分かったりします。
ワークフロー全体像
Alteryxにはデータ分析のためのツールがアイコンとしていくつも用意されています。 今回のマーケット・バスケット分析では「MB Rule」「MB Inspect」という2つのツールを使いました。完成したワークフローは以下のような感じです。
ではどのようにやったか、説明していきます。
Input Data:購買履歴データの入力
Input Dataツールを使って、購買履歴データを読み込みます。 今回使用したデータは、Alteryxに付属のサンプル「19 Market Basket Analysis Sample」から借用しました。
Transaction_IDとItem_Descの2項目だけのシンプルなもの。Transaction_IDが同じレコードは、同時に購入された(1つのバスケットに入っていた)ということです。
MB Rules
Predictive Groupingの中にある「MB Rules」アイコンを貼り付け、「Input」とつなぎます。
設定は以下のようにしました。他はデフォルトで。
Select the transaction key field | Transaction_ID |
Select the field that contains the item identifier | Item_Desc |
The minimum required level of confidence for a rule(信頼度の下限) | 0.2。信頼度については後程説明します。 |
MB Inspect
Predictive Groupingの中にある「MB Inspect」アイコンを貼り付け、「MB rule」の"O"(output)とつなぎます。
設定は以下のようにしました。他はデフォルトで。
Minimum lift for assoc. rule(リフト値の下限) | 1.2。リフト値については後程説明します。 |
マーケット・バスケット分析結果の確認
最後に「Browse」を「MB Inspect」の"O"(output)とつなぎます。これでワークフローは完成です。 ctrl + Rで実行すると、以下のような結果が出ました。
各項目は以下のような意味です。
LHS | 左側の商品(left-hand side) |
RHS | 右側の商品(right-hand side) |
Support | 支持度=LHSとRHSを同時に購入したトランザクション数 / 全トランザクション数 2つの商品の組み合わせで同時に購入した割合。 |
Confidence | 信頼度=LHSとRHSを同時に購入したトランザクション数 / LHSを購入したトランザクション数 左の商品を購入したときに右の商品が購入される割合。 |
Lift | リフト値=Confidence / RHSの購買率 右の商品単品の購買率と、左の商品を購入したときに右の商品が購入される割合、の比率。リフト値が大きいほど2つの商品の関連性が強いと考えられる。 |
この結果から、例えば17行目の{frankfurter}(フランクフルト)と{rolls/buns}(ロールパン)を見ると、リフト値が2以上で信頼度も高いので、「売り場で隣に並べるとよく売れるのでは?」といった施策を、考えていくのだと思われます。
まとめ
このように、購買履歴データから、簡単にマーケット・バスケット分析の指標である支持度、信頼度、リフト値を得ることができました。 アイコン2個貼り付けるだけでマーケット・バスケット分析ができてしまうなんて、Alteryxすごいですね。魔法のようです。
明日11日目は小澤の『Alteryxでロジスティック回帰をしてみる』の予定です。明日もお楽しみに!
参考文献
以下を参考にさせていただきました。