できるだけサクッと機械学習したい

はじめまして、普段はWebサービスの開発とかしてます。

# はじめに
**彡(ﾟ)(ﾟ)**「**機械学習**、流行ってるなあ〜」
**彡(ﾟ)(ﾟ)**「自分でも色々と学習させてみたいけど...」
**彡(ﾟ)(ﾟ)**「実装コスト高そう...**サクッと**試せたらいいのに...」


こんな気持ちになったことありませんか？
**きっとあるはずです。**

そんなときは**Azure ML Studio**を使ってみましょう。
本記事では、Azure ML Studio で**サクッと機械学習する方法**について書いていきます。

 ▷ Azure ML Studio公式サイトは[こちら](https://studio.azureml.net/)

# Azure ML Studioってなに？
Azure ML Studio(Azure Machine Learning Studio)は
モデルをすばやく構築してデプロイする機械学習サービスです。

Microsoftアカウントさえあれば**無料**で使用できます。

また、**GUI**で操作できるので感覚的に使えます。

なにより嬉しいのが機械学習を行うための環境構築などが必要ないので思い立ったら**すぐ試すことが出来ます**。


# AzureML Studioで機械学習してみる

## やったこと

![審査結果のコピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259302/20ae95e9-5b70-44da-9ea6-df8a77c0cfec.png)

今回は**クレジットカードの審査モデル**を作成します。

**職業**、**雇用形態**、**勤続年数**、**年収**、**借入額**をインプットに
**審査合格** or **審査不合格**をアウトプットします。

今回は以下のことを行いました。

1. 用意したデータを使って学習を行う
2. モデルを作成する
3. そのモデルを使って予測する(合格 or 不合格)

## 完成図

![after001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259302/98920c8a-c832-3360-c14e-f65e05bd8900.png)

完成図はこんな感じです。
上から順に処理を定義しています。

**データセット** -> **データの分割** -> **学習モデル** -> **スコア付けモジュール** -> **評価モジュール**
と処理を定義しています。

処理を定義していく過程を順に説明していきます。


# Azure ML Studioで実装してみる

### Experimentを新規作成する

![after002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259302/7b014fb4-d826-b8d3-720e-a9f759c909db.png)

Azure ML Studio には **Experiment** という概念があります。
簡単に説明するとワークスペースみたいなものですね。

この Experiment 画面にさまざまなパーツを置いていくことで処理を定義していきます。


### データセットを準備する

![after003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259302/c35b0612-839b-8ca8-4c50-19a54e2a4fb2.png)

機械学習で使用するデータセットを用意します。

今回は事前にアップロードしたデータセットを使います。

アップロードしたデータセットは「Saved Datasets」タブにあります。

これを Experiment 画面に置いていきます。

### データセットを分割する

![after004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259302/80cd5a2f-ef2b-06f8-70b7-52f8f40c6430.png)

データセットをトレーニングデータとテストデータに分割します。

「Split Data」を Experiment 画面に置きます。


### 学習モデルを用意する

![after005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259302/cc2d254a-d3d7-725d-4ddd-3c641e36d799.png)

**学習させるためのモデル**を用意します。

「Train Model」を Experiment 画面に置きます。

![after006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259302/b04302b1-4537-286a-02da-5bbf449469cc.png)

**正解ラベル**も同時に設定します。
今回は最終的に「審査結果」を予測させたいので「審査結果」を正解ラベルとして設定します。


### 学習方法を設定する

![after007.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259302/258324a4-0e27-64c7-1152-1c7d1fd55d2f.png)

**学習方法**を設定します。
今回は合格 or 不合格 の2クラスに分類させたいのでクラス分類用の学習用モジュールを使用します。

「Multiclass Neural Network」を Experiment 画面に置きます。


### スコア付けモジュールを設定する

![after008.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259302/f727c36b-68d4-78d1-e8f9-0ae457f693a9.png)

テストデータを使って**テスト**するモジュールを設定します。

「Score Model」を Experiment 画面に置きます。


### 評価モジュールを設定する

![after009.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259302/c2e0ca9f-2a9b-2850-e47d-fe599a238c16.png)

**学習の精度を評価**するためのモジュールを設定します。

「Evaluate Model」を Experiment 画面に置きます。


### 学習を開始する

![after010.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259302/d35bd20d-8da1-da06-bed5-3b9b89df7713.png)

全てのモジュールを設定したら**学習を実行**します。

Experiment 画面下の「RUN」ボタンをクリックすると学習が開始されます。


### 学習の結果を確認する

![after011.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259302/2acefb31-6971-570a-a469-4a2aca0d2b4c.png)

学習が完了して画面が切り替わったら**学習の結果を確認**します。

「Evaluate Model」メニューの「Visualize」をクリックすると
このような画面で精度を確認できます。

![after012.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259302/0c605de2-bbf2-8487-2f52-b37a80edc935.png)


### 学習済みモデルを使って予測する

![after013.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259302/a302fe78-bf65-db2f-5c40-4d1cfc7cc563.png)

作成したモデルは Azure ML Studio 上で**テスト**することができます。
画面上でインプット要素を入力してテストを実行すると結果を出力してくれます。


# さいごに

**Azure ML Studio** を利用すれば、
データセット準備〜学習〜モデルの作成〜予測
を**手軽に試す**ことが出来ます。

世の中には**便利なサービス**がたくさんあるので
気軽に**機械学習ライフを謳歌**したいものですね。