Windows10のWSL上に機械学習環境のDataikuを構築してみた

# Dataiku
Dataikuご存知でしょうか？
あまり聞きなれない人が多いのかもしれません。
2018/5/26時点ではQiitaにはこの記事を除いて1件しか検索されませんでした。
[第３の波 — AI、機械学習、データサイエンスの民主化](https://qiita.com/KanNishida/items/adbbbde42b4adbeff6d3 "第３の波 — AI、機械学習、データサイエンスの民主化")
下記記載の面倒なことをDataikuはある程度引き受けてくれます。
データサイエンティストの民主化ではなく、データサイエンティストが本来やるべきことに注力できるツールとして、
非常に有望と思います。

# 機械学習周りの面倒なこと
機械学習関連のタスクに携わっていて結構面倒だなぁーっと思うのが以下の点
- 環境の準備
- データの前処理
- データ分析や特性を可視化する
- モデル精度を可視化する
- メンバー内でモデル毎の精度を共有化する

## 環境の準備
クラウドに出したり、WindowsやMacで環境を作るなどこちらも方法はいくつかあるのですが、
ある程度人数が集まったチームになると開発環境の統制をとるというのが一つの課題になります。
実施しているサイクルやタスクによっては違うライブラリのバージョンを使いたくなったり、
サイクルが終盤になっているのに、ライブラリのバージョン変更を取り込みたくない。
個人のPCでやってるからそもそも、なんの統制もとれてないとか
結局隣の人はどんな環境で分析してるのでしょうか？
そのあたりの管理機能を具備しているのもDataikuの魅力の一つだと思います。

## データの前処理
扱うデータにより前処理は当然変わってくるのですが、ここもまぁまぁ面倒くさい
前処理によってモデル精度が変わってくるので、労力を費やしたいところなのですが、
ここにばかりも時間を割いてられません。
時間がかかる理由は前処理もいくつかのパターンを試してみる必要があるからです。
自然言語処理なら品詞や区切り位置、回帰系なら欠損値をどうするかなど。
この課題に関してもDataikuは便利機能を準備してくれています。

## 可視化
機械学習周りはCRISP-DMで回ってることが多いので、何度も可視化するところが面倒だったりします。
（可視化＝図表にしてパワポに張り付ける）
当然bokehやmatplotlibでいい感じの図を作れるのですが、なんか触るたびにググってる気がする。
（私自身SESで現場で働いてるので、ネットに接続できないことが多い）
今回試した、DataikuはVisualizationが強力で上記で書いた可視化周りを大幅にサポートしてくれます。

## メンバー内でモデル毎の精度を共有化する
普通のPGとちがって、再査や再鑑などをしずらいのが、機械学習関連です。
人に相談したいときに、「前処理から説明するのも。。。」っという場合でも、
プロジェクト単位で共有できているので、何をやっているかは、（良くも悪くもまるわかりです。）

# さてインストール
前置きが長くなりましたが、Dataikuを実際にセットアップしていきましょう。

環境はWindows10 + Windows Subsystem for Linux（WSL）+ ubuntuです
WSLはベータ版ではなく、正式版です。
あとOSは64bit版限定ですので、ご注意ください。

## Dataikuインストールまでの大まかな流れは以下の通り
WSLを有効にする
MicrosoftStoreからubuntuをインストールする
Ubuntu起動し、初期ユーザー設定
Dataikuインストール

### WSLを有効にする
コントロール パネル\プログラム\プログラムと機能

![Windowsの機能の有効化または無効化.PNG](https://qiita-image-store.s3.amazonaws.com/0/45464/48aa57d4-2db9-b0b7-fe5a-6508820ad9ed.png)


Windowsの機能の有効化または無効化
Windows Subsystem for Linuxへチェックを入れ、再起動する

![Windowsの機能.PNG](https://qiita-image-store.s3.amazonaws.com/0/45464/c0f78f5e-d19e-b06c-0c25-ed380ef3330c.png)


### MicrosoftStoreからubuntuをインストールする
![msstore.PNG](https://qiita-image-store.s3.amazonaws.com/0/45464/ec5c4a62-cd00-5291-3228-bbb9987e0802.png)

### Ubuntu起動し、初期ユーザー設定
Storeからインストールすると、スタートメニューやコマンドプロンプトから起動できますので、起動します。
※初回起動は少し時間がかかります
ユーザー名はWindowsのユーザー名と合わせる必要がありません。
![ubuntu1.PNG](https://qiita-image-store.s3.amazonaws.com/0/45464/d124a220-ee00-27bb-2722-2ed8e9520e19.png)

### Dataikuインストール
ここからはLinuxの世界になります。
進め方は公式サイトどおりで大丈夫です。
https://www.dataiku.com/dss/trynow/linux/

wgetでファイルダウンロード

```
wget https://downloads.dataiku.com/public/studio/4.1.5/dataiku-dss-4.1.5.tar.gz
```

tarでファイルの展開

```
tar xzf dataiku-dss-4.1.5.tar.gz
```



Install

```
dataiku-dss-4.1.5/installer.sh -d DATA_DIR -p 11000
```
ここまで順調でしたが、インストールで下記の画面がでています。

![install_depend_error.PNG](https://qiita-image-store.s3.amazonaws.com/0/45464/d6e9969b-8327-67aa-65f8-468ce4463de1.png)


どうやら他のライブラリが必要なようですので、依存関係を解決していきます。
nginx-full
普通に```apt-get install nginx-full```としたいところですが、これは良くありません。
だいたい希望よりも古いバージョンになることが多いです。
その為、同じpre-buildでもnginx公式から引き込むようにしましょう
以下のサイトを見ながら手順を確認します
https://nginx.org/en/linux_packages.html#stable
https://qiita.com/mionatsume/items/1d802723c370984d544b

aptを使ってインストールしますが、そのままでインストールできません。
その為aptが見に行くサーバー追加する（ここではnginxの公式サーバー）

```
wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
```

/etc/apt/sources.listの後ろ2行に以下を追加

```
deb http://nginx.org/packages/ubuntu/ xenial nginx
deb-src http://nginx.org/packages/ubuntu/ xenial nginx
```

nginx-fullのインストール

```
sudo apt-get update
sudo apt-get install nginx-full
```

nginxのインストールはこれで終わり。
残りのライブラリはひたすらapt-getでインストールしてきます。
Fortranのライブラリとかも使うんですね。

```
sudo apt-get install unzip
sudo apt-get install zip
sudo apt-get install default-jre-headless
sudo apt-get install python2.7
sudo apt-get install libpython2.7
sudo apt-get install libgfortran3
sudo apt-get install libgomp1
```

これで依存関係は解決できたのでもう一度インストールコマンドをたたいてみます

```
dataiku-dss-4.1.5/installer.sh -d DATA_DIR -p 11000
```

これでようやくDataikuが起動できます。
メッセージに従って、サーバーを起動してみましょう
![instakk_Daraiku_ok2.PNG](https://qiita-image-store.s3.amazonaws.com/0/45464/ef01f6f2-d2e7-186e-6290-286346e5da62.png)

```
/home/hoge/DATA_DIR/bin/dss start
```

ブラウザでポート11000にアクセスしてみます。
初回は認証がありますので、適宜入力してください。
□ Check to start now your Free 2-week trial of Enterprise Edition
上記のチェックは今回インストールしているのはFree Editionで機能が限定されています。
その機能を解除してEnterprise Editionを評価できる期間が2週間です。
チェックを付ければEnterpriseとして動作します。
まずはFreeEditionで使ってみて、ある程度なれてからEnterpriseの評価をした方がいいかもしれません。

![dataiku_login.PNG](https://qiita-image-store.s3.amazonaws.com/0/45464/0784503f-bc1e-035d-51d2-342313aa580c.png)

以下の画面までくれば環境の準備は完了です。
![Dataiku_Bootup.PNG](https://qiita-image-store.s3.amazonaws.com/0/45464/c7538590-3525-4fba-06ae-9932996c344d.png)

※スクショはEdgeブラウザになってますが、DataikuはChromeやFireFoxを推奨していますので、ご注意ください