Azure Machine Learning StudioチュートリアルをやってみたPart1

こんばんはあいおんです。
本日は掲題の通りAzure Machine Learning Studioをやってみたいと思います。
とはいえ、チュートリアルをやってみただけなので、あまり参考にならないかもしれませんが、
私なりの気づきやポイントを添える形としたいと思います。

# 前提
この記事読むにあたってなんとなく意識しておくべきことを書いておきます。

## やったこと
やったのは以下です。
[チュートリアル:Azure Machine Learning Studio で初めてのデータ サイエンス実験を作成する](https://docs.microsoft.com/ja-jp/azure/machine-learning/studio/create-experiment)

## 対象読者
- 機械学習に興味がある人
- けど文系で微分とか積分とかわからない人
- できればGUIでぽちぽちでやれたら嬉しいなぁという人

つまりまぁSE全般ってことですね（話が大きい）
あ、最初に伝えておきますが、英語が必要です。
とはいってもそんなに難しくないです。チュートリアルやるだけなら、なんとなくの英語で十分です。
実際に開発しようと思ったらきちんと英語を読まなくちゃいけないのでしんどい気はします。
（まぁ英語よりも、開発の中身の方が大切なのは当たり前なのですが、英語ができないと、それを読むことに背一杯で集中できないような気もしますから。やっぱり英語は大切ですね。）

あと、基本的にチュートリアルの中に画像があるものはここには貼り付けません。
チュートリアルになかったもので、あったら良かったなぁと思うものを貼り付けていきます。

# 準備

まず以下のサイトにアクセスしてください。
https://studio.azureml.net

そうするとAzureのMLのサイトに行きますのでサインインしてください。
アカウント持っていなければ適当にアカウント作成してください。

# 流れ
チュートリアルにも書いてありますが、機械学習の開発は以下の流れで実施していきます。
これは、別にAzureMLに限った話ではありません。
なので、これを機に身につけておくと今後役に立つと思います。

1.モデルの作成
2.モデルのトレーニング
3.モデルの評価

チュートリアルの細かい手順に従って詳細は実施してきます。

# データを取得する
最初に「空の実験」をクリックして開発を開始します。
<img width="449" alt="スクリーンショット 2019-02-17 22.49.41.png" src="https://qiita-image-store.s3.amazonaws.com/0/216765/bfbbfebb-9bf8-4e90-6b01-02f3c4d9ed94.png">

で、適当に名前をつけたら、いよいよ開発に入ります。
左側のバーの検索ボタンを押して、「automobile」と入力します。
そうすると、「Automobile price data (Raw) 」がありますので、これを右側にドラッグします。
これは、訓練用のデータのセットとなりますが、本番での開発では自分で作る必要があるなぁと思います。
今回はチュートリアルなので、一式揃っているものを使わせてもらいましょう。

左側に持ってきたら、ボックスの下の丸い部分をダブルクリックして、出てきたメニューの「Visualize」をクリックします。
この丸い部分を出力ポートというので覚えておくと良いでしょう。

中身を見てみるといかにもデータベースのような情報が入っているのがわかりますね。
とはいえ、ぼんやり見ていくと、情報が入っていない部分があったりします。
これでは正しく学習できないので、学習させる前にデータを"整理”する必要がありそうですね。

# データを準備する

よく見ていくと「normalized-losses」がかけている場合が多いので、この列を外してしまいましょう。
左側の検索ボックスから、「Select Columns in Dataset」を検索して、右側に持ってきましょう。
で、ここがGUIの真髄なのですが、先ほどの「Automobile price data (Raw)」の出力ポートから、「Select Columns in Dataset」の上側に向かってドラッグ＆ドロップしてください。
そうすると、線で結ばれると思います。
こうやって、データの流れがスムーズにわかるとやっていても直感的でとても良いですね。
さて、それでは実際に処理を定義していきましょうか。
右側に「Launch column selector」というのがあるので、クリックしてください。

<img width="745" alt="スクリーンショット 2019-02-17 23.04.36.png" src="https://qiita-image-store.s3.amazonaws.com/0/216765/1e745050-0dcd-9072-2f82-ec203011c06c.png">

そこで出てきたウィンドウにて、以下の通りに設定します。
- WITH RULEを選択
- Begin withはALL columns
- 下の入力部分はexclude - column names - normalized-lossesを入力
- 右下のチェックマークをクリックしてウィンドウを閉じる

これは何をやったかというと、上のデータに対して、「normalized-lossess」の行を除外した、というものになります。やってみると非常に直感的だったのがわかると思います（私にとっては、英語であることを除けば、ですが←）

で、続きまして、データが欠けているものを除外していきたいと思います。
おなじみ、左側の検索バーから、「Clean Missing Data」を検索して右側に持ってきてください。
そうして先ほどと同じように上の「select columns in dataset」から線を伸ばしてください。
次に、「Clean Missing Data」をクリックして右側のウィンドウの「Cleaning mode」にて、「Remove missing value rows」を選択します。
これにて、不足しているデータの行は削除されます。これで整理ができそうですね。

一旦状況を試してみましょう。下にある、「RUN」をクリックしてください。
<img width="743" alt="スクリーンショット 2019-02-17 23.21.54.png" src="https://qiita-image-store.s3.amazonaws.com/0/216765/56a7c9c2-9865-4ebc-80d1-0b18b5d359aa.png">

うまくいけば緑のチェックマークがつくと思います。
左側の出力ポートをダブクリクックして「Visualize」をクリックして内容を確認してみてください。
データが綺麗になっていますね。これでインプットのデータの準備が整いました。

# 次回へ続く
いいところなのですが、お時間の都合上一旦ここで区切ります。
ここまでではまだデータを準備しただけなのですが、結構大切なので覚えておいてください。

また、今回はautomobileを使いましたが、他にもサンプルデータには、「weather」や「mnist」等もあり、いろいろ抽出してみるのは面白そうだなぁと思いました。
あとはもちろん自分でdetasetを作ることもできます。
左下のnewから「FROM LOCAL FILE」でいけそうですね。お時間ある方は是非。

<img width="716" alt="スクリーンショット 2019-02-17 23.32.28.png" src="https://qiita-image-store.s3.amazonaws.com/0/216765/af0bb2e6-1a9c-0a95-aaf6-887a93121673.png">

一週間ぐらいで次を作ります。遅くとも２月中には。
ここまでで何かあればコメントいただけると助かります。必ず確認します。

では、また。