12.New Donor Score Sample(新しい寄付者のスコアリング) | Alteryx Predictive Tools 道場 Advent Calendar 2018 #12

『Alteyx Predictive Tools 道場 Advent Calendar』の12日目、大学の卒業生が寄付をするかしないかを他の情報を元にランダムフォレストで推測し、スコアリングして結果と比較するサンプルを紹介します。
2018.12.12

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

はじめに

データ加工・準備・分析からレポート作成までをワンストップで提供するデータ分析プラットフォーム「Alteryx」には250種類を超えるツールと様々なサンプルワークフローが提供されています。

今回はそのなかでも興味はあるものの、何をやっているのか理解し難いサンプルとして定評のある「Predictve Alanysis(予測分析)」のサンプルワークフロー25種を弊社データインテグレーション(DI)部のメンバーが、アドベントカレンダー形式で順番に紹介しています。

それが今回実施している『Alteyx Predictive Tools 道場 Advent Calendar』です。

当エントリはその12日目、New Donor Score Sample(新しい寄付者のスコアリング)について紹介するエントリです。

実行環境とサンプル起動

本エントリには、以下の環境を使用しています。

  • 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 > 12 New Donor Score Sample を選択します。 Predictive Analysisのサンプルがない場合は、Windowsのアプリと起動メニューから、Alteryx Predictive Toolsのインストールが正しく完了できているかを確認してください。

サンプル概要

このワークフローは、Rベースの予測モデル(フォレストモデル)からの予測値(スコア)を、モデルと「一致する」データ(モデルの作成に使用される全ての予測変数フィールドを含む)に加えて図示する方法を示しています。予測モデルは、以前に大学に寄付したことのない大規模な公立大学の卒業生が、アウトバウンドのテレマーケティングキャンペーンの一環として連絡した場合に寄付する確率を予測するように設計されます。

このサンプルでは以下のツールを使います。

  • Input(データ入力)
  • Create Samples Macro(サンプル作成)
  • Forest Model Macro(フォレストモデル)
  • Score Macro(スコアリング)
  • Sort(並べ替え)
  • Browse(閲覧)

Input(データ入力)

データ入力ツールを使用して、分析データを入力します。このデータは、大規模な公立研究大学のドナー(寄付者)調査アプリケーションから提供されたものだそうで、大学の卒業生が寄付(Donate)を行ったことがあるかという情報になります。過去に寄付を何回行ったかどうか、いつ行ったか、出身校はどこか、家族構成は、等の要素(カラム)情報を元に、Donateカラムに記載された寄付の有無(Yes/No)を推測するというものです。

参考までに、データ件数は全部で2400件あります。

Create Samples Macro(サンプル作成)

サンプル作成ツールを使用して、フォレストモデルの作成に使用するサンプルを抽出します。学習用として50%(1200件)のデータを抽出し、残りは特に利用すること無く捨てています。

Forest Model Macro(フォレストモデル)

フォレストモデルツールのランダムフォレストアルゴリズムを使い、データに含まれる多数の要素から、どの要素が寄付する/しないの判断に影響を与えているかを推測するモデルを作成します。目標変数をDonateに設定し、予測変数としてその他全ての要素を選択します。他には作成するツリーの数と、各分割で選択する変数の数(個々の木毎に使用する予測変数の数)を入力できます。今回はツリーを500作成する設定で進めます。

ランダムフォレストのアルゴリズムに関しては、下記エントリも参考にしてみてください。

Random Forestで計算できる特徴量の重要度 | なにメモ

実行結果のレポートをBrowse(閲覧)ツールで確認します。使用した関数がRecord 2のCall以下に表示されています。Record 4のOOB estimate of the error rateが気になりますが、OOBとはout-of-bagの略称で、学習用データとして使われなかったデータの集合だそうです。この学習データとして使われなかった決定木のグループを集めて部分森を構成した上で、その学習データで分類して差を計算したものがOOB estimate of the error rateの値とのことです。

レポートを下にスクロールさせるとグラフも表示されています。上のグラフは作成したツリーの数(横軸)におけるエラー率の変化(縦軸)を表しています。下のグラフはジニ係数による重要度を表しています。縦軸は予測に使用した各要素で、それぞれの要素の横軸におけるポイント位置が右にあればあるほど推測に役立つ要素だと考えられます。

Score Macro(スコアリング)

スコアリングツールを使って、モデルを評価します、具体的には、モデルによって予測された値の精度を推定するスコアと呼ばれる評価列を作成します。今回は寄付する(Yes)/しない(No)の予測を行っているので、それぞれYesのスコアとNoのスコアが出力されます。

入力は2種類、Rベースの予測ツールで作成されたモデルオブジェクトと評価に使うデータが必要です。フォレストモデルの出力と元のデータストリームをスコアリングツールの入力に設定します。ツールをクリックして、左側の設定画面から、データストリームに追加するフィールドの名前 (ターゲットが数値フィールドの場合) または接頭辞 (ターゲットがカテゴリフィールドの場合) を指定します。

今回のサンプルではターゲットフィールドは「Yes」または「No」の値を取るので、結果2つのフィールドがデータストリームに追加されます。具体的には接頭辞に「Score」と設定されている場合、返されるフィールドの名前は「Score_No」と「Score_Yes」になります。

サンプルでは更にオーバーサンプリングの設定を行っています。オーバーサンプリングとは、少数派のデータをもとに不足分のデータを補完する事を指します。 「ターゲットフィールドにオーバーサンプリング値があります」チェックボックスをオンにし、「オーバーサンプリングされたターゲットフィールドの値」としてYesを入力し、「オーバーサンプリング前の元のデータのオーバーサンプリングされた値の割合」として2を指定します。

Sort(並べ替え)

並べ替えツールを使用して、スコアリングツールによって追加されたScore_Yesフィールドで降順に並べ替えます。これでフォレストモデルに基づいて寄付する可能性が最も高いものから低いものへ表示されます。

Browse(閲覧)

結果を確認します。カラムの一番右、Score_Yesのスコアと一番左、実際に寄付する/しないの結果を比較してみると、スコアが高いものがYesとなっていることがわかります。

さいごに

『Alteyx Predictive Tools 道場 Advent Calendar』、今回New Donor Score Sample(新しい寄付者のスコアリング)のサンプルについてご紹介しました。明日、13日目は大高による「Spatial Objects (空間情報の分析)」の予定です。お楽しみに。

Alteryxの導入なら、クラスメソッドにおまかせください

日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。

alteryx_960x400