AI民主化ひとすじ20年の老技術者はDataRobotトライアル版で夢の野球チームの予測をする

## 1. はじめに
DataRobotを触りたいという友人のリクエストに応えるべく，DataRobotトライアル版を自分もリクエストしてしまいました。ごめんなさいシバタアキラさん。
友人はおっさんなので，野球のネタなら喜ぶだろうとマネーボールみたいなことをやって見せることにしたのでした。
マネーボールというのは，セイバーメトリクスと呼ばれる統計学的手法を用いて、MLB随一の貧乏球団だったアスレチックスをプレーオフ常連の強豪チームに作り上げていくノンフィクションで映画化もされました。
実は私は大学・社会人と硬式野球をやっていて，高校・中学の野球部の指導を数十年やっていたという暗い過去があります。なんて話をしているとQiitaじゃなくなるのでさっさと本題に入りましょう。
（DataRobotって歩くのか？というような方はまず下のロボットをつついてみてください。）

[<img width = 300 src = "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/2a0161cb-1ee8-aa3d-2390-beb0bc9b7234.png">](https://www.datarobot.com/jp/)

## 2. トライアル版DataRobotを使えるようにする
現在，残念ながら手軽にFree Trialをすることはできないようです。
こちらのページの「製品ご購入前のお問い合わせ」をつついて営業担当者にtrialをお願いする形のようです。

https://www.datarobot.com/jp/contact-us/

![2023-01-30_11h25_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/148a5d31-b3b9-b602-2634-80fa9987eac6.png)

営業さんに怪しまれなければ無事Free Trialのアクセス情報を振り出してもらえます。

<!--
この節の終わりまでは，リンクが切れています。


<font color="grey">

まずは<a href="https://www.datarobot.com/jp/lp/trial/" rel="nofollow noopener" target="_blank">ここ</a>からトライアル版を申し込みましょう。


<img width="600pix" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/f89d1ed4-b8fe-af6a-358b-950e955de789.png">

すると間もなくこんなメールが届きます（友人のKさんはブラックリストに載っているようで5日待たされたそうですが）。

<img width="480pix" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/8d27fc6d-ed11-e017-7997-bf7eada3db56.png">

ようしこれでDataRobotに入れるぞーと「DataRobotトライアル版を使う」みたいなボタンを探すが…ない！
仕方なく何か糸口を与えてくれそうな<a href="https://community.datarobot.com/t5/learning-sessions/ct-p/Learning" rel="nofollow noopener" target="_blank">「ラーニングセンター」</a>というのをつついてみる。ん？？
<img width="600pix" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/997e4d58-1654-dabc-543c-db307464c0ad.png">



お，英語，しかもどう見てもラーニングセンターであってDataRobot君本体ではない。
あー，もう待てないという皆さんの顔が浮かびますので答えを教えます。
<b>
登録からDataRobotを使い始めるまでの流れ。
1.　「DataRobot AI Platform フリートライアルの登録が完了しました」というメールが届く
2.　そのメール中のリンクから「ラーニングセンター」に入る。または下記urlへ。
	https://community.datarobot.com/t5/learning-center/ct-p/Learning
3.　ラーニングセンターのページの右上にある「Sign Up」をクリック
4.　「DataRobot アカウントを作成 登録」の「登録」をクリック
5.　フリートライアルの登録に使ったメールアドレスでDataRobot アカウント登録
6.　https://app2.datarobot.com/
　にアクセスしてDataRobotに入る
（認証情報を求められたら5で登録したメールアドレス，パスワードを入れる）
</b>
</font>

-->

1.営業さんへのフリートライアルのお願いに使ったメールアドレスでDataRobot アカウント登録
2.https://app2.datarobot.com/
　にアクセスしてDataRobotに入る
（認証情報を求められたら1で登録したメールアドレス，パスワードを入れる）
これで，無事にこの画面にたどり着くと思います。


<img width="600pix" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/faefdd6f-258f-9c24-aecc-0ff9379079cd.png">

ここに分析したいデータを放り込みます。
すでに他のプロジェクトを作成したことがある場合には，この画面で「機械学習の開発」を押した後，

![2023-01-26_22h49_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/0daa9288-053f-cf9f-c73a-93d9636ee863.png)

「新しいプロジェクトを作成」を押すと，「または、いくつかの一般的なユースケースを探索します」というオプションが出てきますので，その中から興味のあるユースケースを選びます。

![2023-01-26_23h08_58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/8ca3f797-89a2-6bea-d5f3-d2d076cd0336.png)


## 3. 分析したいデータを用意する
トライアル版には、お試しユースケース（データセット）が内蔵されています。どれも面白そうなのですが，その中から今回は「夢の野球チームの予測」というのを選びます。連続値の回帰問題です。「データセットのインポート」を押してください。

![2023-01-26_23h15_26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/dc65d3f2-a05e-ef89-86c8-035e81189772.png)

するといきなり元データの読み取りが始まります。

<img width="600pix" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/3f92a4b0-9e50-4d18-7d50-c5cfe8760529.png">

データ読み取りに続き，自動で「探索的データ解析」が行われます。
探索的データ解析が終わると，データに様々な情報が表示されます。
探索的データ解析は早くもDataRobotのヤバい機能の一つ。
さっさとターゲットを決めて開始ボタンを押してモデルを作ってしまえばいいのですが，ここでデータをしっかり見ておくのが実務ではとても大事です。

## 4. 探索的データ解析の結果を見よう
<b>(お急ぎの方は飛ばして5へ）</b>

探索的データ解析が終わった状態でDataRobotはこんな感じです。
この画面右の「Data Quality Assessment」が表示されているときは，下にスクロールしてデータを参照しましょう。

![2023-01-26_23h25_29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/9604edc0-d217-2a8c-41ec-4bef068b5527.png)


データ品質のところに黄色のマークが付いています。

![2023-01-26_23h20_43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/2284f11c-2268-c107-80df-1af2370cc7ea.png)


例えば「死球数」のところに出ている黄色のマークにカーソルを合わせると「外れ値」と出てきます。
「死球数」をクリックすると，ヒストグラムが現れます。その上には統計量や箱ひげ図が表示されています。
「外れ値を表示」にチェックを入れると赤丸で外れ値が表示されます。通算死球数250を超える選手がいるようですね。
私はノーコン投手でしたからよくぶつけました。あれはかなり痛いようで，社会人時代はぶつけた相手に「おい，こっちは妻子いるんだぞ！」と怒鳴られたりしました。それにしても250とはよく当てられたもんです。

<img width="480pix" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/78f9e3d9-766b-b6b0-e1d8-8972b36dbe7f.png">

DataRobotは賢いので，外れ値を検出すると，それが単位の間違いなどで混入した異常値なのか，周東選手の盗塁数とか意味のある外れ値なのかを見極めて良しなに処理してくれます（log変換したり，ビニングしたり）。
他にもいろいろな特徴量があって，クリックするとヒストグラムが見られるので，お時間があるようでしたらどうぞご覧になってください。

## 5. ターゲットを決めてモデリング

今回は「wOBA」をターゲットにしましょう。wOBAというのは打者が1打席あたりにどれだけチームの得点増加に貢献したかを表す指標ですが，詳細は割愛します。下にスクロールしてwOBAにカーソルを置くと「ターゲットとして使う」という文字が出てきますのでそれをクリックしてください。

<img width="480pix" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/1a7878a9-616e-e1b2-269f-509ae679cb57.png">

ページの上の方に戻ると巨大な「開始」ボタンがくっきりと！

<img width="600pix" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/5c331cf1-c407-62b8-e057-a195e232a876.png">

これを押す瞬間，老技術者は一瞬DataRobotユーザーになった気分に酔うのです！
すぐにモデリングが始まります。
1分も経ってから各特徴量をクリックすると先ほどはなかったオレンジの折れ線グラフが加えられています。
これは各特徴量とターゲットであるwOBAの値との相関を表しています。

<img width="600pix" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/e2f9671c-9f92-6103-e17b-be84267f0374.png">

こうやって時間をつぶしていてもいいですが，そこそこ時間がかかりますのでコーヒーでも淹れて一休みなさってください。
15分ほど経って帰ってくると，


<img width="200pix" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/80ce10d4-2904-b3c4-0d8c-0a13de409d15.png">

上のメニューから「リーダーボード」というのを選ぶと，次のような表が現れます。

<img width="600pix" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/d324eea7-90cc-d5c6-1cef-152cdbd530b9.png">


このリーダーボードというのが今回のモデリングで良い感じだったモデルの順位表です。




## 6. 第1位のモデル使って予測してみる

DataRobotをこよなく愛す老技術者は，いつもは出来上がったモデルを開いてゴニョゴニョしてその日を終えてしまいます。でも今回はAIは予測してなんぼだろ，という声を尊重しまして，さっそく予測をしてみたいと思います。
すなわち，モデリングで使っていない選手のデータを使って，wOBAの値を予測します。
さて，Ridge Regressorというリーダーボードの一番上のやつをつつくと，出ましたブループリント。 

<img width="600pix" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/7a532d44-ac88-8922-af39-0974f6f7d81d.png">

 DataRobot君，いろいろやって下さったのね，と感謝しつつも深入りせず，目立たぬところにある「予測」という文字をクリック。するとこんな画面が出てきます。そうそう，予測用のデータセットどこにあるのかなあと不安になっていたのでした。さすがトライアル版，ちゃんと「予測データセットの例」…「ダウンロード」とあるではないですか！ダウンロードをクリック。

<img width="600pix" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/8cd81af2-44ff-6ec7-2bd6-c2088392f05a.png">

ローカルにダウンロードした予測用のデータbaseball_scoring.csvというファイルをドラッグアンドドロップ。

<img width="600pix" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/cfba3e54-288b-b272-9f8d-76ae623f062f.png">

そして読み込み終わったら「予測を計算」をクリック。

<img width="600pix" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/abb3f241-6638-3682-a5c1-ddf5164197dd.png">

計算が終わったら「予測をダウンロード」が表示されるのでクリック。

<img width="600pix" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/db8e4b1d-ad5f-4142-edd3-4ad4e60cb28d.png">


するとこんなcsvファイルが！

<img width="200pix" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/6efae5a7-d203-b6a5-38bb-7b1549c8ad56.png">

元のファイルに挿入すると，

<img width="600pix" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/202911/f8aa70ff-4961-dbb4-a780-b5140863d591.png">

予測完了！　さてこのモデルの使いみちですが，このままでは少し難しいですかね。特徴量の選手成績をすべて昨年までのものに限定して今シーズンのwOBAをターゲットにしてモデリングしなおせば，翌年の活躍を予測するモデルにはなると思います。
ひょっとすると数年後にはMLBチームのGMにDataRobotが就任するかもしれませんね。