プログラミング不要・全自動機械学習ソフトの紹介【インストールと操作まで】


#Auto MLとは

最近AutoMLのソフトが色々と出てきてます。

さて、AutoMLですが、簡単に説明するとデータを突っ込んでUI使って操作するだけで機械学習できるようにしたものです。

現状、機械学習というとpythonやRでプログラム(コード)を書きながら機械学習モデルを作り上げていくのですが、これが大変時間がかかる....。
AutoMLはそのコーディング過程を省略できるというメリットがあります。
さらにUIを使って分かりやすく補助してくれたり、本来前処理や特徴量エンジニアリングと言われる機械学習エンジニアの腕の見せ所のテクニック部分がAutoMLの中では自動的に処理されたりします。

そのためノンプログラマーでも、機械学習に詳しくなくても利用できるわけです。


コーディングに時間をとられないことによって、結果の解釈や、新たなデータを使って仮説検証したり、多くのアルゴリズム・パラメータ探索へ時間を割けるので、教育の場でも使われたりしているみたいですよ。(滋賀大学とか)

#今回は「Data Iku」というソフトを使う

DataIkuは2013年にパリで設立され、現在の本社はニューヨーク市にある会社です。
DataIkuの出しているDSSイメージを使ってAutoMLを試してみようと思います。

#インストール・起動

1.仮想マシン「[virtual box](https://www.virtualbox.org/wiki/Downloads) 」をダウンロード
2.data iku「[DSSイメージ](https://cdn.downloads.dataiku.com/public/dss/6.0.1/dataiku-dss-6.0.1.ova)」をダウンロード

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/1f13c605-5008-ba06-2d90-fd1bc3de2f98.png)

3.virtual boxの左上のファイルから、アプライアンスのインストールを選択してDSSイメージを取り込む

![006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/6da37e72-7a58-4581-fcaa-e9bff48d2028.png)


4.起動すると「http ～」が表示されるのでブラウザに入力する


![001.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/9d3b39b2-eb1f-85f6-830f-4850e10792d6.png)


いくつか手順に従って登録する。
今回アカウントは試しの範囲でFree editionを選択する。

#Data iku　の操作

無料ライセンスで登録が終了するとブラウザ上で以下のような画面が出てくる。

![007.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/f72a210e-60cc-d76e-2507-d5a8bf153e5e.png)


Blank projectを選択する。プロジェクト名はとりあえず何でもいい。

![010.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/7a121d7b-8b24-9ff2-d472-a4cc73e8c30c.png)

import data から分析したいデータをアップロードする。
アップロードが終わるとpreviewするか聞かれるのでpreviewを押すと


![011.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/8c6000ef-2f80-67c5-183a-b6440bb412f0.png)


上記のように確認ができる。文字化け、区切り文字指定、データのヘッダー部分の除去などを一旦行う。
確認ができたら右上のcreateを押すとプロジェクトが作成される。





#データの分析からモデリングへ

![015.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/ef4b849f-d306-6ff4-5c33-c024af6891d0.png)

画面左上の円形アイコンからvisual analysisを選択。
new analysisで新たな分析の準備をする。
「analysis」とあるように、データを可視化したり、UI上で修正したりする作業ができる。

可視化したい時は図の右上にある「charts」を開く。
以下にUI上で可視化する例を載せておく。

![demos.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/3a6c7de4-9f31-0e99-5601-ed0a19024fe9.gif)


データに対する処理が終わったところで早速機械学習モデルを作っていく。
「charts」の右の「models」を選択し、create fast modelからモデルを作っていく。

![demosss.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/3e480330-c7ea-2ce8-ce96-15f1919b97f5.gif)

今回は特に指定せずお任せで進めて行った結果、randam forestとXGBoostが選択されました。
expart modelから進めて行けばdeep learningも選択できます。
深層学習にはkeras/tensor flow　を使っているようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/d74db6ec-f4b6-20d5-fead-97ddbe860108.png)



処理画面にある通り、いくつかのパラメータ探索や、交差検証を自動で行ってくれています。

![009.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/b1abf6e2-2efa-d03c-75cf-43a72d9290e2.png)

図上では学習曲線の評価にR2 scoreを使っていますが、この評価指標も事前に変更しておくことが可能です。


![020.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/c7b9de1e-a8e2-193a-0594-04ebcba70197.png)

決定木モデルなので特徴量の重要度もレポートされてくるし、

![grid.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/e1828d53-04d5-f1cc-385d-c6ae6882996b.png)

グリッドサーチの結果を表示させることもできます。
完成したモデルを選択して、右上のdeployボタンから

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/a96d9d03-b450-afe0-1bc4-b94f4f0a6cc1.png)

export jupyter notebookを選択すると、

![030.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/1da9fd9e-5a77-028c-6617-b7dd57d662b0.png)

notebook形式で出力してくれます。


#APIとして利用

パラメータ探索やモデル選択が自動でできると機械学習エンジニアとしてはそれだけでも便利なのですが、AutoMLはノンプログラマ向けに、極力プログラミングせずともモデルが利用できるようになっています。

左上Flowのタブからcreate APIというボタンを見つけ出してください。


![0985.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/305a5be9-c78f-01b1-a4eb-42f8d421b9b0.png)


APIの利用登録をしていると、先ほどのnotebookにAPI指定をして動かすだけで作成済モデルを読み込むことができ、コーディングせずとも色々なPCからモデルを動かすことができるようになるそうです。

#APIの利用方法・・・

は、課金してないので紹介できません。
興味あったら皆さんでやってみてください。


#まとめ

プログラミングアレルギーでなく、pythonコードが書けるなら似たような体系的処理とか作って自分でやった方が自由度高そう。
data robotあたりはもうちょっとバリエーションあって遊んでみると面白いのかも。
ただdata robotはお試しが無いので試せない。
data robotの社員さん、使わせてくりぃ～～～。

#おわり

公式の該当するリンクを残しときます

[インストール周辺](https://www.dataiku.com/product/get-started/virtualbox/)
[仮想マシンからアクセス](https://doc.dataiku.com/dss/latest/installation/other/vm.html)
[モデル作成](https://academy.dataiku.com/latest/tutorial/machine-learning/index.html)
[pythonAPI](https://doc.dataiku.com/dss/latest/python-api/index.html)