19.Market Basket Analysis(マーケットバスケット分析) | Alteryx Predictive Tools 道場 Advent Calendar 2018 #19
はじめに
データ加工・準備・分析からレポート作成までをワンストップで提供するデータ分析プラットフォーム「Alteryx」には250種類を超えるツールと様々なサンプルワークフローが提供されています。
今回はそのなかでも興味はあるものの、何をやっているのか理解し難いサンプルとして定評のある「Predictve Alanysis(予測分析)」のサンプルワークフロー25種を弊社データインテグレーション(DI)部のメンバーが、アドベントカレンダー形式で順番に紹介しています。
それが今回実施している『Alteyx Predictive Tools 道場 Advent Calendar』です。
- クラスメソッド Alteryx Predictive Tools 道場 Advent Calendar 2018 - Qiita
- Alteryx Predictive Tools 道場 Advent Calendar | シリーズ | DevelopersIO
当エントリはその19日目、Market Basket Analysis(マーケットバスケット分析) について紹介するエントリです。
実行環境とサンプル起動
本エントリには、以下の環境を使用しています。
- macOS Mojave バージョン10.14.2
- VMware Fusion 10.1.5
- Windows 10 Pro バージョン1803
- Alteryx Designer 2018.4 Admin Version 日本語インストール + Alteryx Predictive Tools
Alteryx Designerを起動して、 メニューから Help > Sample Workflows > Predictive Analysis > 19 Market Basket Analysis を選択します。 Predictive Analysisのサンプルがない場合は、Windowsのアプリと起動メニューから、Alteryx Predictive Toolsのインストールが正しく完了できているかを確認してください。
サンプル概要
本サンプルワークフローでは、購入者の購入行動をよりよく理解するのに役立つ分析を実行する為に、MBルールとMB検査という2つの予測ツールを使用しています。
ワークフローは大きく4つのブロックに分かれます。
- データ入力
- Apriori(アプリオリ)アルゴリズムによる相関ルールの調査
- Aprioriアルゴリズムによる頻出アイテムセットの調査
- Eclat(エクラ)アルゴリズムによる頻出アイテムセットの調査
また、このサンプルでは以下のツールを使います。
- Text Input(テキスト入力)
- MB Rules(MBルール)
- MB Inspect(MB検査)
- Browse(閲覧)
1. データ入力
Text Input(テキスト入力)
POSデータをイメージした構造のサンプルデータを入力としています。
カラム名 | 説明 |
---|---|
Transaction_ID | 同じ買物に対して、同じ番号が付与されます(レシート番号をイメージしてください) |
Item_Desc | 購入した商品の名前が記載されます |
2. Apriori(アプリオリ)アルゴリズムによる相関ルールの調査
Aprioriアルゴリズムとは、あるデータの変数の関係性(例えば、商品Aを購入する事と商品Bを購入する事の関係性)に最もあてはまる相関ルールを抽出する方法の一つです。大規模なデータから幅優先型の探索で相関ルールを列挙するアルゴリズムです。
MB Rules(MBルール)
Aprioriアルゴリズムを使い、相関ルール(ツール上では「関連付けルール」と表記)に基づいて分析を作成します。データ入力ツールで設定した入力データから、キーとデータフィールドを設定します。
今回のサンプルデータではデータフィールドは1行1件のデータですが、カンマ区切りなどで複数のデータを持つ場合は、「単一の(内部で区切られた)フィールド内のすべての項目を含むレコードごとに1つのトランザクション...」を選択し、区切り文字に何を使っているかを指定します。
コントロールパラメータでは、サポートレベルや信頼レベルを設定することができます。これにより結果として得られるデータの数を調整します。欲張ってあまり多くのデータを取り出そうとするとその分メモリ不足に陥るのでご注意ください。
詳細は下記Alteryxヘルプをご参照ください。
MBルールツールのRアンカーに閲覧ツールを接続することで、処理後の統計結果を確認することができます。
MB Inspect(MB検査)
MB検査ツールは、MBルールツールの出力(Oアンカー)を入力としします。MBルールツールから出力されたアイテムセットを管理可能な数に減らすために、関連分析の出力最小/最大値に基づいてフィルタを設定します。
本サンプルでは、1つのMBルールツールから3つの異なる設定のフィルタで結果を表示しています。
フィルタには以下を設定します。
- サポート(支持度): 全データの中で、商品Aを買う時に、商品Bも一緒に買う事象が出現する割合
- 信頼(確信度、信頼度): 条件部(商品A)の項目が出現する割合の中で、条件部(商品A)と結論部(商品B)が同時に出現する割合
- リフト: 商品Aと一緒に商品Bも購入した人の割合は、全てのデータの中で商品Bを購入した人の割合よりどれだけ多いかを倍率で示したもの
また、出力をどの項目でソートするかを「関連付けルールをソート」ドロップダウンリストで設定します。最初のMB検査ツールではサポート(支持度)の最小値にフィルタを設定し、サポートの大きい順に出力させています。
MB検査ツールのRアンカーに閲覧ツールを接続することで、出力レポートを確認することができます。上記設定の通りにサポート(支持度)に着目していることが確認できます。
また、レポートを下にスクロールさせると、事象の関連性を図示してくれています。上の図のLHS(left hand side)は、条件を表していて、RHS(right hand side)は結論を表しています。「商品Aを買った時に商品Bを買う」という話であれば、商品AがLHS、商品BがRHSに相当します。
また、図ではリフト値を色で示しています。これを見ると、牛乳(whole milk)はどのような買い物にも含まれる確率が高いですが、野菜(root vegitables, other vegitables)については、特定の組み合わせでのみ購入される確率が高いことを示しているようです。
MB Inspect(MB検査)
2つ目のMB検査ツールでは、信頼度に着目してレポート出力させています。
MB Inspect(MB検査)
3つ目のMB検査ツールでは、リフト値に着目してレポート出力させています。
3. Aprioriアルゴリズムによる頻出アイテムセットの調査
MB Rules(MBルール)
Aprioriアルゴリズムに基づいて、頻出アイテムセット(最小支持度以上の支持度を持つアイテム集合)を求めます。
使用する方法のラジオボタンが「頻出アイテムセット」に設定されています。
出力を確認すると、Itemset Summaryとして最頻出アイテムの表示などが確認できます。
MB Inspect(MB検査)
頻出アイテムセットに基づいてフィルタを設定せず、すべてのレコードを出力して分析します。
4. Eclat(エクラ)アルゴリズムによる頻出アイテムセットの調査
Eclatアルゴリズムも相関ルールを抽出する方法の一つですが、Aprioriアルゴリズムが幅優先型の探索で相関ルールを列挙していたのに対し、Eclatは深さ優先型のアルゴリズムです。Aprioriアルゴリズムよりメモリ利用効率が良く高速だと言われています。
MB Rules(MBルール)
Eclatアルゴリズムを用いて、頻出アイテムセットの調査を行います。
MB Inspect(MB検査)
Aprioriアルゴリズムと同じ条件でレポート出力を行います。
アルゴリズムは異なりますが、条件は同じなので、同じ結果が得られています。
さいごに
『Alteyx Predictive Tools 道場 Advent Calendar』、今回Market Basket Analysis(マーケットバスケット分析)のサンプルについてご紹介しました。明日、20日目は兼本による、A/Bテストの2日連続のエントリになります。どうぞお楽しみに。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。