マーケット・バスケット分析をやってみた #alteryx #10 | Alteryx Advent Calendar 2016

2016.12.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは!DI部大矢です。

当エントリは『Alteyx Advent Calendar 2016』の10日目のエントリです。

今回はAlteryxでマーケット・バスケット分析をやってみました。

マーケット・バスケット分析は、購買履歴データを元に、一緒に買われている商品を見つけるような分析です。 「おむつを買った人は同時にビールを買うことが多い」といったことが分かったりします。

ワークフロー全体像

Alteryxにはデータ分析のためのツールがアイコンとしていくつも用意されています。 今回のマーケット・バスケット分析では「MB Rule」「MB Inspect」という2つのツールを使いました。完成したワークフローは以下のような感じです。

2016-11-18_13h21_13

ではどのようにやったか、説明していきます。

Input Data:購買履歴データの入力

Input Dataツールを使って、購買履歴データを読み込みます。 今回使用したデータは、Alteryxに付属のサンプル「19 Market Basket Analysis Sample」から借用しました。

2016-11-18_13h19_54

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。信頼度については後程説明します。

2016-11-18_13h35_44

MB Inspect

Predictive Groupingの中にある「MB Inspect」アイコンを貼り付け、「MB rule」の"O"(output)とつなぎます。

設定は以下のようにしました。他はデフォルトで。

Minimum lift for assoc. rule(リフト値の下限) 1.2。リフト値については後程説明します。

2016-11-18_13h36_07

マーケット・バスケット分析結果の確認

最後に「Browse」を「MB Inspect」の"O"(output)とつなぎます。これでワークフローは完成です。 ctrl + Rで実行すると、以下のような結果が出ました。

2016-11-18_13h54_31

各項目は以下のような意味です。

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でロジスティック回帰をしてみる』の予定です。明日もお楽しみに!

参考文献

以下を参考にさせていただきました。