【図解】ノーコードで機械学習モデルを構築できるサービスがあるらしい！初学者向けに解説

はじめまして。株式会社キカガクの小池です。
キカガクは、「AI を含めた先端技術の研修」を行っている会社です。

**機械学習を学びたい**
**機械学習の構造を学びたい**

だけど、プログラミングをしたことがない。コードを覚えるのは大変そう。
本記事はそういった**機械学習初学者の方、機械学習を使用したビジネスサイドの方**向けの記事になっています。
今回は Azure Machiene Lerning サービスの内の１つである Microsoft の **Machiene Lerning デザイナー**を使用します。


こちらは**コードをかかずに機械学習モデルの構築、デプロイを行う**ことができる画期的なサービスです。
今回は機械学習モデルの構築について解説します！！

![3dd6c94101ef9925c29dec8ebf9daee5.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/6a450fb3-c3be-feaa-d8b5-271bfe2c0cf4.gif)




今回はサンプルデータを使用し、分類問題に取り組んでいきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/f3655dbe-c259-4418-d00a-10e41337ff41.png)

分類の目的は、どのデータがどの種類に属するのかを見ることです。
図のような例であれば未知のデータはカテゴリ A に分類されそうですね。
入力されるデータがいくつかのグループに分けられることを前提として、グループ内で細かな違いを無視することになります。

プロットするとすれば分類はデータ全体をできるだけ分けるように線を引くことに相当します。

- 犬 or 猫
- 上がる or 下がる
- A さん or B さん or C さん

のような例は分類のタスクとなります。
それでは Machiene Lerning デザイナーを使用しましょう。

## 事前準備

 **こちらでは [Azure](https://azure.microsoft.com/ja-jp/) を使用して行きますのでサブスクリプションの登録が必要になります。初めて利用する方は無料で使用できます。初めてでない方でも数十円程度で実装できます！**


### リソースの作成

まずはリソースの作成をします。アプリをダウンロードするイメージです。
![ホーム_-_Microsoft_Azure.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/ef3e8453-6979-b2ec-4509-e6768b7b2611.png)

machine learning と検索して頂き作成を押してください。

![新規_-_Microsoft_Azure.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/997256b7-71d2-56c5-f351-fc492ecc0906.png)

リソースの設定は画像の通りです。設定ができましたら作成を押してください。

![Machine_learning_-_Microsoft_Azure.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/b6388b83-488c-89db-28ab-14b4a8c56f61.png)

作成が完了しましたらスタジオの起動を押してください。

![koike1_-_Microsoft_Azure.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/d0a6765f-6a98-03e6-3b15-c96a8e18e405.png)

起動後、このような画面に遷移します。こちらが Azure Machine Learning のホーム画面です。
こちらで機械学習モデルの構築、運用を行うことができ、今回使用するデザイナー以外にも自動機械学習、 Notebook を使用して機械学習モデルを構築することができます。それではデザイナーを使用して行きましょう。今すぐ開始をクリックしてください。
![ホーム_-_Microsoft_Azure_Machine_Learning.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/a27c7d59-5414-aec5-fade-d05635d82128.png)

新しいパイプラインの＋を押してください。 Dense Net を使用した画像分類モデル構築の例などもみることができます。
![デザイナー_-_Microsoft_Azure_Machine_Learning.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/dc8ba946-5ad7-4f0b-baca-eb4b4b273862.png)

その後、このような画面に遷移します。デザイナーを使う前に、使用する演算装置を設定する必要があります。
![作成_-_Microsoft_Azure_Machine_Learning.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/9c7d18bd-4174-80bc-c399-da840b633b17.png)
コンピューティング先を設定を押してください。こちらでどのコンピューティング先を選ぶかによって値段が変わってきます。
より演算速度の早いもののほうが値段も高くなります。今回は推奨されているものをそのまま使用します。
![作成_-_Microsoft_Azure_Machine_Learning.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/51d43a67-3126-2ca5-4b35-f9abab0a1993.png)

ここまでで Azure Machine Learning デザイナーの初期設定が完了です。

## 学習の実行

それでは実際に Azure Machine Learning デザイナーを使用して機械学習分類モデルの構築を行っていきましょう。

機械学習におけるモデル構築の流れは次の通りです。

**1. 使用するデータの準備
2. データの分割
3. 使用するアルゴリズムの定義
4. モデルの学習
5. モデルの検証
6. モデルの評価**


もちろん他にもデータの前処理やハイパーパラメータ調整などの手順もありますが今回はモデル構築の基本的な部分にのみ解説を行っていきます。

### 1.使用するデータの準備
今回はサンプルのデータセットの[米国国勢調査局提供の、成人収入に関する二項分類データセット](https://docs.microsoft.com/ja-jp/azure/machine-learning/samples-designer)を使用します。
画像にあるデータセットを作業場へドラッグアンドドロップしてください。
もちろん自前のデータセットをアップロードしモデル構築をすることもできます。

![作成_-_Microsoft_Azure_Machine_Learning.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/a4747629-ecf7-961b-1511-668eeb4e7b22.png)
このようにドラッグアンドドロップ出来ていれば Good です。
◯を押して頂き
![作成_-_Microsoft_Azure_Machine_Learning.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/da93d6f4-db98-6839-6c2f-e99e30ffe971.png)
視覚化を行うことによって
![作成_-_Microsoft_Azure_Machine_Learning.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/b63adeb6-eae8-3a1e-8291-d24d4b522773.png)
このようにデータセットの可視化を行うことができます。
これだけでもコードを使用せずに簡単に可視化できるという点で驚いた方もいらっしゃるかと思います。
今回は**統計データを使用して対象の人々を分類し、個人が 1 年間に 50,000 ドル以上の年収を得られるかどうかを予測**します。
![作成_-_Microsoft_Azure_Machine_Learning.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/4190e6c9-7f73-1e81-8b80-1b1135293657.png)

実際に機械学習を行っていく際には、文字列を数値に変換する処理が必要なのですが、このあたりも自動で行ってくれます。
もちろん、手動で変換処理を定義することもできます。


### 2. データの分割

データの準備ができましたらデータの分割を行います。
データの分割を行わなくても、モデルを学習することができます。
しかし、モデルの学習を行う際には、モデルをテストすることも視野に入れる必要があります。
なぜなら、学習に使用したデータセットに対してうまく分類を行えるかのテストを行っても、適切なテストではないからです。（受験勉強で、勉強した過去問で実力テストを行うようなイメージを持つとわかりやすいです。）
そのため、データセットを学習に使用するデータセットと、テストに使用するデータセットの 2 つに分割します。

Data Transformation より Split Data を選択してドラッグアンドドロップしてください。
![作成_-_Microsoft_Azure_Machine_Learning.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/ccc71e5f-b3d9-e56b-bb2d-7a6618ac19c8.png)
データの分割の割合を定義します。
学習データ80%、テストデータ20%をしております。

![作成_-_Microsoft_Azure_Machine_Learning.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/9575f007-4105-7d82-0ef8-168b35e627b2.png)

その後、データセットの◯とデータ分割の◯を線でつないでください。
こうすることによって処理の流れを定義しています。
![作成_-_Microsoft_Azure_Machine_Learning.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/6053eabe-840f-fcbc-e265-42dfe615fd6f.png)

### 3. 使用するアルゴリズムの定義
今回は決定木をベースとしたアルゴリズムで実装を行います。
決定木は条件分岐を繰り返すことにより分類を行う手法です。
![決定木_ipynb_-_Colaboratory.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/0d7bcaa3-61d2-04df-353c-3299dd590a6c.png)

他にも**ディープラーニング**や**サポートベクターマシン**などと言った手法があります。
![作成_-_Microsoft_Azure_Machine_Learning.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/f49ef49f-ccd7-2bce-b81d-d0b737a67c64.png)


### 4. モデルの学習
アルゴリズムの定義ができましたら学習をさせます。

![作成_-_Microsoft_Azure_Machine_Learning.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/7f559411-1092-8f95-f0b8-e1f5529cbfa7.png)
こちらで Column を選択します。データの何を予測させるかを選択します。
今回はincome（収入）を予測させます。
![作成_-_Microsoft_Azure_Machine_Learning.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/ef20330d-478d-b3bd-557f-200035be251e.png)



### 5. モデルの検証
学習ができたら検証を行います。
学習とデータ分割をした際のデータを線でつないでください。
Model Scoreing ＆ Evaluation より Model Scoreing を選択しドラッグアンドドロップしてください。

![作成_-_Microsoft_Azure_Machine_Learning_と_kikagaku___Slack.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/c8620350-a87b-1f75-7a54-3d9edc0d00f4.png)

こちらは Score Model を可視化したものです
予測値が算出されていることが確認できます。
また Scored Probabilities という名前で各予測に対する確率を確認できます。
（つまりどのくらい機械が自身を持って予測をしたのかを確認できます。）
それでは全体でどれだけ正解していたのかを確認するために 6. モデルの評価をみていきましょう。
![作成_-_Microsoft_Azure_Machine_Learning.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/b74d9594-59dc-3c15-8f35-adc971bf6267.png)



### 6. モデルの評価
Model Scoreing でも予測の結果をみることができます。
ここでは、最終的に予測がどれくらいあっているのかを確認するため、 Model Scoreing & Evaluation より Evaluate Model をドラッグアンドドロップしてください。
![作成_-_Microsoft_Azure_Machine_Learning.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/67f90bb3-5258-9794-a1bb-8d8975b1b2c0.png)

こちらをドラッグアンドドロップしました機械学習モデル構築の流れは以上になりますので、右上の送信ボタンを押してください。
そうすると実行のセットアップ画面に遷移します。こちらを行ったあとに再度送信を押してください。
こちらを押すことによって一連の処理が実行されます。

![作成_-_Microsoft_Azure_Machine_Learning.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/de52cb34-8d5c-d290-8d2b-03c3e75184a7.png)

画像右上のように実行中となっていましたら処理が行われています。
より複雑な処理を定義すればするほど実行時間は長くなります。
実行された処理は完了という表示になります。完了まで ５ 分ほどお待ち下さい。
![作成_-_Microsoft_Azure_Machine_Learning.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/28aaa24e-2d04-372e-cebe-fc2866d18d6a.png)


実行が完了すると全体の正解率を確認できます。


![作成_-_Microsoft_Azure_Machine_Learning.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/3142ebcb-5b12-35e6-fa98-e672c94c30ca.png)
また混合行列という画像の出力もされますので各値に対してどれくらい予測があたっていたのかを確認することができます。

![作成_-_Microsoft_Azure_Machine_Learning.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/d592d28c-29a8-97b4-ee3a-fac2781689c3.png)

このようにして簡単に機械学習モデルを構築することができました。
あとはこのモデルをデプロイすることによってこのように簡単にこちらのモデルを使用できます。
![ore_-_Microsoft_Azure_Machine_Learning.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1021129/f7a9f64e-08ae-7286-ec3c-95a7c9d0b302.png)



デプロイを行う方法の詳細については、第二弾としてまとめていきたいと思います。
待ちきれないという方はこちらの[「モデルのデプロイ」](https://docs.microsoft.com/ja-jp/azure/machine-learning/tutorial-designer-automobile-price-deploy)を参照してください。

Microsoftの Machiene Lerning デザイナーを使用してGUI（ドラッグアンドドロップ）で機械学習モデルを構築の流れを御紹介してきました。
ありがとうございました。

## お知らせ
[![https___qiita-image-store.s3.ap-northeast-1.amazonaws.com_0_130181_36206be5-499a-66df-a401-a28a66f2b3d2.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/314351/ae15a062-1ce3-d038-f4e3-dda17f498b9d.jpeg)](https://www.kikagaku.ai/)
動画を通じて、ディープラーニングが一から学習できる大人気コースの脱ブラックボックスが無料になりました。
**手書きの数学とハンズオン形式のプログラミング**によって、初学者でも安心して一から学習できます。
機械学習やディープラーニングを基礎から実践を学びたい方は、ぜひ教材の１つとしてご利用ください！
[▶︎ 脱ブラックボックスコースを無料で学び始めたい方はこちら！](https://www.kikagaku.ai/)