New Donor(新しい寄付者)予測 | Alteryx Predictive Tools 道場 Advent Calendar 2018 #11
こんにちは、小澤です。
当エントリは『Alteyx Predictive Tools 道場 Advent Calendar』の11日目のエントリです。
クラスメソッド Alteryx Predictive Tools 道場 Advent Calendar 2018 - Qiita
Alteryx Predictive Tools 道場 Advent Calendar | シリーズ | DevelopersIO
前提条件
本シリーズではAlteryx2018.4を使用しています。
どんなサンプル?
Alteryx Designerを起動して、「ヘルプ > サンプルワークフロー > Predictive tool samples > Predictive Analytics > 11 New Donor」から開くことができます。
また、本ワークフローを参照するにはAlteryx Predictive Tools with Rがインストールされている必要があります。
New Donorのサンプルについて
New Donorのサンプルはこれまでのものと異なり、PredictiveやPredictive Grouping, Time Seriesなどのカテゴリに所属するツールの使い方を開設するサンプルではなく、Predictiveのツールを使って実際に予測分析を行ってみる流れを解説したようなサンプルになっています。 一連の流れを実装しているため、非常に重厚壮大なワークフローです。
実は私、以前にもこのサンプルワークフローの解説をしています。
非常に長いサンプルなのであの時も結構書くの苦労したんですよ...したんですよ...
今回のシリーズはPredictiveのサンプルを上から順に解説していっているもののようなので、当然その流れにこのNew Donorも存在しており、みんな逃げやがったこれに関しては私が担当になっていましたw
そんなこんなで、以前書いたのと同じような流れで全体を解説していっても面白くないですね。 そこで今回は趣向を変えて、各Predictiveツールが何者なのかを解説していきたいと思います。
ツール解説
とはいえ、実はこちらもすでに過去に開設したものもいくつかあります。
- 決定木モデルを作る #alteryx #03 | Alteryx Advent Calendar 2016 | DevelopersIO
- ロジスティック回帰をしてみる #alteryx #11 | Alteryx Advent Calendar 2016 | DevelopersIO
- AlteryxでSVM | DevelopersIO
いやー、いろいろ書いてきましたねー(え?SVMは数式のせてないぞ?って?) そんなこんなで、New Donorで使ってるモデルのうち、解説していないものは
- Forest Model
- Boosted Model
- Stepwise
- Spline Model
- Neural Network
- Naive Bayes Classifier
あたりのツールでしょうか? あれ?こっちのほうが多いぞ...
さて、私が解説したものしてないもの含めて、本シリーズで登場するツールは
- Decistion Tree
- Forest Model
- Linear Regression
- Logistic Regression
となっていますので、これら以外の
- Boosted Model
- Stepwise
- Neural Network
- Naive Bayes Classifier
をざっくりとベースでどんなものなのか見ていくことにしましょう。 (ゴメンナサイSpline Model...)
Boosted Model
AlteryxのBoosted Modelツールは勾配ブースティングと呼ばれる回帰や分類を行うための手法となっています。
最も基本的には、勾配ブースティングは、Forest Modelで利用されているような複数の弱学習器の多数決的な仕組みとなっています。 それらとの違いは、すべてが独立に学習するわけではなく、1つ1つが前回うまく正解できなかった結果に対する重みを増やしていく仕組みにあります。
観測データ\(x\)に対して\(M\)個の学習器を利用する学習器\(G(x)\)が\(G_1(x), G_2(x),..., G_m(x)\)の結果の多数決となるときそれぞれの重み\(\alpha\)を使って、以下のような計算が行われます。
[latex] G(x) = sign(\sum^{M}_{m=1} \alpha_m G_m(x)) [/latex]
AlteryxのBoosted Modelはこの各\(G_m(x)\)に決定木を利用したGBDT(Gradient Boosting Decision Tree)が利用されています。
Stepwise
Stepwiseはそれ単体が何かを学習するものというわけでありません。 これはAlteryxでは必ずLinear RegressionかLogistic Regressionの後ろにくっつきます。
Stepwiseでは何をしているかというと、"いらない変数を削除する"ということをしています。 "いらない変数"とはどういうことかというと、モデリングを行う際には多くの説明変数を利用して目的変数を予測します。 今回の場合だと目的変数であるDonateの値を予測するために18個の説明変数を利用しています。
実は、この際に説明変数となる項目が多すぎても困るといった場合があります。 モデルに解釈性を求めるような場合は、全く必要ない変数があると見通しが悪くなりますし、説明変数間に相関があるとマルチコ(多重共線性)と呼ばれる現象が発生してうまく予測できなくなるような問題もあったりします。
Stepwiseでは、そういった問題を解決するために説明変数の数を減らしたり増やしたりしながらいい感じの結果になるものを求めています。
Neural Network
Neural Networkは読んで字のごとく、今流行りのニューラルネットワークを使ったモデルです。 とはいえ、AlteryxのNeural Networkツールは流行りのDeep Learningではなく、古典的な三層構造のニューラルネットワークです。
入力層、中間層、出力層がそれぞれ全結合でつながってるやつですね。
Naive Bayes Classifier
Naive Bayesはベイズの法則に基づいて、各説明変数の出現確率がそれぞれ独立である(説明変数Aの値が説明変数Bの値に影響を与えることがない)と仮定して各説明変数の出現確率からそれらを掛け合わせて目的変数の値となる確率を求める手法になります。
[latex] P(C|D) = \frac{P(D|C)P(C)}{P(D)} [/latex]
あるデータDが与えられたときにそのカテゴリがCである確率を\(P(C|D)\)としています。分母は常に一定なので、これを省略してデータ中の各値が独立に観測されるとしたときの\(P(C|D)\)は
[latex] \prod_i P(D_i | C) [/latex]
を求めるような計算になります。
まとめ
今回は、AlteryxのNew Donorサンプルで使われている手法のうちいくつかがどのようなものか、簡単に触れてみました。 実際にはこのサンプルのようにすべて並べて一番いいものを!とやってしまうのが楽かもしれませんが、ざっくりとでもどんなものか知っておくと詳細が必要になった際に役立つかもしれません。
明日12日目は甲木 洋介による「New Donor Score Sample」の予定です。明日もお楽しみに。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。