【AutoML】チュートリアルを使って分類モデルを作ってみる【Azure】

今回はAutoMLの[チュートリアル](https://docs.microsoft.com/ja-jp/azure/machine-learning/tutorial-first-experiment-automated-ml)をやってみたいと思います。
この記事ではAzureMLStudio上での操作で実行をしていきます。

ワークスペースやクラスターの作成、実行方法等は[最初の記事](https://qiita.com/K-Nomu3/items/6b9c89b958380ea67b64)を参考にしてください。

# データの追加
それではまずはAutoMLのジョブを作成していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395106/c0a9b559-12ba-e1b8-0611-eeaadec7233f.png)

左上の新規機械学習ジョブを開きます。

次にデータの選択、登録です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395106/9c91015f-71b0-591a-a032-53ea61493815.png)

今回はtitanicのデータを用意してみたいと思います。
以前の記事でデータストアに登録しているのでそちらを持ってきたいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395106/08b5fefd-61bb-9954-5491-5a071b1c7df4.png)
データセットの名前を決めて
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395106/f75bab95-0719-35c5-77ef-00b8cab53442.png)
データを選択して
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395106/a3934d0d-275f-e5f3-369e-c4c5db459266.png)
データの設定をします。
この時データ内に複数行(改行してるデータ)があるかを指定します。
存在する場合は別途処理をするようなので速度が低下するようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395106/4a8417ad-636c-3c48-0400-2c6d002a1bc6.png)

その後学習に利用するデータの設定をします。
学習に含めるか、データの型の指定を行えるようです。
また日付型の場合は形式の設定ができるみたいですね。
データの型は初期値としておおむね正しいものが設定されているようなのであまり気にしなくてもよさそうです。
今回は`Survived`の項目を整数からブールに変更してみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395106/b13882dd-fd84-d9c6-513d-fbeb6d9b74e6.png)
最後に確認して登録します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395106/e5cd6252-0456-a676-1a7f-c0bdc4ce03bc.png)
ちゃんと追加できました。

# ジョブの構成
続いてジョブを設定していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395106/0a32ad20-a77a-9582-280c-875ff3c49d07.png)
実験の名前と予測対象のカラム名を指定し、学習に用いるコンピューティング先を指定します。


# タスクと設定の選択
ここではどのアルゴリズムで学習させるかを選択できるようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395106/795c1660-1596-ccc4-7e4a-21d763e45f06.png)

予測対象から自動で最適なものを選んでくれてるようです。
異なるものが選択されていればここで修正できますね。
今回はこのまま分析で行います。
ディープラーニングの有無も選べます。
今回はなしで行きましょう。

# 検証とテストの種類を選択
ここでは検証方法とテストデータの設定ができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395106/45cd4169-c882-4229-8ea0-3f4dad7e628f.png)

検証にはいくつか種類があるようですが自動という項目があるので今回はこれで行きたいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395106/fda9ee43-e085-fbf8-9e35-4b3afd5bc9e4.png)

テストデータについては、自分で指定するか分割するかを選べるようです。
今回はテストデータ30%で分割してもらいましょう。
その後実行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395106/7b029b07-6b1f-5a3e-d115-07e2c4602b25.png)
実行できました。
完了まで待ってみましょう。

# 結果の確認
実行終了までに55 分 48.33 秒かかりました。
全部で58個のモデルが作られているようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395106/25ec35b4-de4c-218e-2040-dc6c315e2df3.png)
一番良かった結果には説明がついてるようです。
こちらを確認してみましょう。

## 説明プレビュー
説明タブではデータについてが可視化されているようです。
重要度やデータの分布が確認できるようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395106/d9fc1256-43bb-9933-79a5-46dbb71efe9e.png)

## メトリック
メトリックでは精度指標が可視化されて確認できるようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395106/10bdcd35-08c8-240d-690d-6db1df4467bb.png)

## データ変換
データ変換タブではどのようにデータが処理されているかを可視化してくれています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395106/563dd1d5-ce7d-68e3-5265-b1de9c873cbb.png)


## テスト結果
テスト結果タブではテストデータを用いた結果を可視化してくれています。
表示内容はメトリックと同じようですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395106/a3474ab0-5e42-76ad-d9d4-e348f82a974d.png)

## 成果物
出力とログを確認してみたところ、`model.pkl`というモデルファイルがありました。
このモデルが使えると思ったなら、これを利用して運用することができるのかなと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395106/a4c2dabf-c77c-3716-d78f-0f7e1b3f8ce2.png)

## デプロイ
作成したモデルをデプロイします。
リアルタイムエンドポイントとwebサービスへの配置がありますが、今回はwebサービスへの配置を行ってみたいと思います。
モデルのページからデプロイを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395106/efbcf730-1720-08ca-7bab-ca79162fc9c2.png)

名前等の設定を行うとデプロイができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395106/2d5f67d1-091d-9da7-0d04-9e972d0fbcf6.png)

デプロイしたモデルのテストを行ってみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395106/3e2a72b2-f6a1-24af-d639-d4633bef8d64.png)

実行結果がjsonで帰ってきてますね。今回はfalseになったようです。


## まとめ
今回はAutoMLをStudio上で実行してみました。
58個もモデルを作ってるためか時間はかかってしまいましたね。
このモデルの作成数についてですが、ジョブの作成時にタスクと設定の項目に追加の構成設定をする項目がありました。
中身を見てみると、終了の目標閾値や実行したいモデルの種類を選択できるようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395106/75bfb68a-ba8d-51d0-7493-7f7627c811c7.png)

こちらを設定することで短時間で任意のモデルを確認することができるようになりますね。
次回はこれらをpythonから実行してみたいと思います。