DataRobotでマーケティング施策による銀行口座開設予測

#データ
こちらのオープンデータ👇
http://archive.ics.uci.edu/ml/datasets/Bank+Marketing

Signateでも練習問題として取り上げられています。👇
https://signate.jp/competitions/1

これらのデータの列名をわかりやすく日本語に訳しておきました。

使用するデータは、ある銀行の顧客属性データおよび、過去のキャンペーンでの接触情報、などで、これらのデータを元に、当該のキャンペーンの結果、口座を開設したかどうかを予測します。

<img width="539" alt="スクリーンショット 2020-04-17 22.25.08.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620435/eac012f5-7ffd-ddf9-1ae4-7a6550e8e6c0.png">

<img width="1434" alt="スクリーンショット 2020-04-17 22.31.20.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620435/652c4040-353a-94be-3bb8-e38c5ce01a0d.png">


#学習
とりあえずAutoPilotでモデル生成
なんとワンクリックで64ものアルゴリズムでモデルを学習してくれました。
<img width="1435" alt="スクリーンショット 2020-04-17 22.54.21.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620435/06f1a111-b41b-9185-185d-7200ba57825e.png">
そのなかでもトップ３は全部XGBoost系のアルゴリズムになったみたいです。
中身をもう少し詳しくみていきます。

#精度
<img width="1393" alt="スクリーンショット 2020-04-17 22.57.16.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620435/38e262bf-ae94-0d85-ade6-fdbbf7e8df5e.png">

|評価指標        　　| 　　　　　　       値|
|:-----------------|------------------:|
| Accuracy         |            0.8973 |
| F1 score         |            0.6243 |
| Precision        |            0.5458 |
| Sensitivity      |            0.7291 |


<img width="484" alt="スクリーンショット 2020-04-17 23.00.49.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620435/ba4fe1fd-8a0e-2ef8-10ea-c908e6315520.png">
実際に口座開設をした人を72.9%の精度で的中させてるのでいい感じかと

<img width="391" alt="スクリーンショット 2020-04-17 23.00.08.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620435/d2222708-a5f6-6f5d-a4c2-8458ce7aa8eb.png">
最適な閾値を自動で出してくれてるのは地味にありがたいです

#推論
####モデル選定
実際に学習したモデルを推論してみようと思います。
<img width="662" alt="スクリーンショット 2020-04-18 12.41.52.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620435/b92b9048-186f-f442-45e3-7b4585c47cd1.png">
<img width="470" alt="スクリーンショット 2020-04-18 12.41.55.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620435/b9e00742-2dcb-9659-fde8-f32974636d4c.png">
「RECOMMENDED FOR DEPLOYMENT」や「MOST ACCURACY」などのように推奨モデルにラベルがついているので、結局どのモデルを使えばいいのかわからない場合は、これらのタグがついてるものを選んであげれば間違いないと思います。

<img width="1426" alt="スクリーンショット 2020-04-17 23.13.20.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620435/4e180413-e12a-a9dd-2e86-c521e83a941b.png">

また、もし仮に自動で生成されたモデルの中に利用したいモデルがなかった場合は、「Add New Model」から手動でアルゴリズムを選択して学習を行うこともできるみたいです。

####予測
<img width="1243" alt="スクリーンショット 2020-04-17 23.11.35.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620435/27a0e3e5-68bd-01fe-0cde-a3ae3f71b7ac.png">
データセットにあるテストデータをアップロードし、予測を実行します。

<img width="359" alt="スクリーンショット 2020-04-18 12.51.03.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620435/fc6b570e-3deb-80fe-26b3-5f0600bf0a6c.png">
内部的に予測をブレンドして出力してくれているようですが、１アルゴリズムにつき１モデルってわけではなく、アンサンブル学習をしているんでしょうか
<img width="309" alt="スクリーンショット 2020-04-18 12.55.13.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620435/092d9049-5d3f-d715-546b-1d2f727e6532.png">
予測結果をダウンロードして中身を確認してみると、１列目にはID, ２列目には0~1で表された確率, ３列目には予測結果が入ったCSVファイルとなってました。

<img width="1425" alt="スクリーンショット 2020-04-17 23.06.26.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620435/9f1d24c2-3e65-a1af-8b69-404b8eac6d23.png">
Prediction Explanationsから推論の根拠を確認することができます。
>最後に顧客に接触した際に会話したのが５２秒間で、その月が「May」だったため、この顧客は口座を開設しないと予測しました。

というようなことが表されています。

#おわり
データさえあれば、DataRobotをつかえばわずか数分で予測結果を出力するところまで行けることがわかりました。
社内にAIやデータサイエンスの知見が全くない場合は業者に頼んでPoCを行ってベースの知識を獲得するのもいいともいますが
DataRobotや他のMLツールを自ら触って、機械学習でできることできないことをちゃんと肌感覚で理解することも、今の時代では大切かと思います。