学習モデルのレポートを自動的に作ってくれる？

今回も、これまでにいくつか記事を書いているDriverless AIについて書きます。
(Driverless AIは略してDAIと表記します。)
この記事では、AutoReportというものを自動で作ってくれています。

# AutoReportって？

DAIがAutoReportという学習結果をまとめたレポートを作っていることをご存知でしょうか。
青枠でくくられた部分の **AUTOREPORTダウンロード** というボタンをクリックするとダウンロードができます。
![スクリーンショット 2019-11-12 16.40.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242652/bd055222-a1e8-5b0e-42b3-43284769df4f.png)
※作成されていない場合は、同じところにAUTOREPORT作成ボタンが表示されるので、まずはそちらをクリックしてください。

実際にダウンロードしてみると、こんな感じのWord形式ファイルが取得できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242652/8afd7ffc-ae4c-180a-7b78-eaf39a44afd7.png)

使用したデータのサマリー情報であったり、使ったアルゴリズムや最終的なモデル精度まで全てまとまっています。
ただし、英語なので学習結果について詳しく書かれていてもわかりづらい。
ということで、このAutoReportを日本語化する方法について書きます。

# 日本語化テンプレート

このレポートは、テンプレートが用意されていてそれを読み込む形で作られています。
なので、そのテンプレートを書き換えてしまえば日本語化もできるわけです。

日本語用のテンプレートをGitHubにアップロードしたので、ご自由にお使いください。
https://github.com/tom-m-m/dai-autoreport

## テンプレートの使い方
### コンテナ環境での使い方

コンテナでDAIを起動する場合は、オプションでテンプレートファイルを指定します。
コンテナ用のファイルは下のURLからDockerのところからダウンロードしてください。
https://s3.amazonaws.com/artifacts.h2o.ai/releases/ai/h2o/dai/rel-1.8.0-6/index.html

自分の場合は、POEWRアーキテクチャを使っているので下の枠の内のURLをクリックします。
そうすると、**dai-docker-centos7-ppc64le-1.8.0-10.0.tar.gz** がダウンロードされます。
アーキテクチャやバージョンの違いでファイル名が異なります。
![スクリーンショット 2019-11-12 16.59.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242652/58e74a1b-e3e9-f377-aeca-c2366de073ba.png)

そして、
```bash
docker load < dai-docker-centos7-ppc64le-1.8.0-10.0.tar.gz
```
を実行すると、DAIのコンテナイメージがDocker環境上に追加されます。

コンテナを起動する前に、テンプレートファイルをダウロードしておきます。
[こちら](https://github.com/tom-m-m/dai-autoreport)から`/data/report_template_jp_v180.docx`をダウンロードしてください。
今回は、このファイルをDAIコンテナを起動する環境の`/data`内に配置しておきます。

### DAIコンテナの起動
テンプレートの日本語化は、コンテナを起動する際のオプションで指定します。
日本語化テンプレート & GUIの日本語化をするときの起動コマンドはこんな感じです。

```bash
docker run \
    --name dai\
    --pid=host \
    --init \
    --shm-size=256m \
    -u `id -u`:`id -g` \
    -d \
    -p 12345:12345 \
    -p 8888:8888 \
    -v `pwd`/data:/data \
    -v `pwd`/log:/log \
    -v `pwd`/license:/license \
    -v `pwd`/tmp:/tmp \
    -e DAI_APP_LANGUAGE="ja" \
    -e DAI_AUTODOC_TEMPLATE="/data/report_template_jp_v180.docx" \
    h2oai/dai-centos7-ppc64le:1.8.0-cuda10.0
```

詳しいコンテナの起動方法は[ドキュメント](https://s3.amazonaws.com/artifacts.h2o.ai/releases/ai/h2o/dai/rel-1.8.0-6/docs/userguide/index.html)を確認してください。(コンテナ起動の記事も書く予定です)

[日本語化の記事](https://qiita.com/tom_m_m/items/8b3524c8eab6823a95f2)を書いたときにコンテナ起動オプションについて少し触れましたが、`-e DAI_APP_LANGUAGE="ja"`をつけると日本語化されます。

AutoReportを日本語化する場合は、`-e DAI_AUTODOC_TEMPLATE="/data/report_template_jp_v180.docx"`をつけると使用するテンプレートを指定できます。

実際に作られるレポートはこんな感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242652/7dada816-c6d8-e30d-aebe-057313550135.png)

中身を少し見ていきます。
Experimentの概要の項目を見ると、でき上がったモデルに使われたアルゴリズムや学習に使われた特徴量、DAI内で作られた特徴量がいくつあるのか記載されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242652/64f113e0-b3bb-1aa3-a85f-7be84158989e.png)

最終モデルの性能という項目には、一般的に使われている精度を表す指標の結果が一覧で書かれていますね。
他にも、このExperimentは2値分類だったので混同行列の記載もあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242652/8b2a71d7-5f88-a8dc-6730-182d667e9ff5.png)

これ以外にも、「どんな特徴量を内部で生成したか」や「どの特徴量がもっとも寄与しているか」などの情報もこのレポートには書かれています。

# 通常のインストールの場合

`/etc/dai/config.toml`に設定が記述されているので、ここを編集します。
このファイルの中に、`autodoc_template`という項目があります。
このパラメータに、テンプレートのファイルパスを指定します。
変更した後、DAIを`systemctl restart dai`などで再起動すれば完了です。

# これまでに書いたDAI関連の記事
[まずは起動から！Driverless AI -MLの自動化ツール- Part 1](https://qiita.com/tom_m_m/items/318569bf762c527174ec)
[学習の実行！Driverless AI -MLの自動化ツール- Part 2](https://qiita.com/tom_m_m/items/32f79edba6c47b95f3b3)
[モデルの評価！ Driverless AI -MLの自動化ツール- Part 3](https://qiita.com/tom_m_m/items/15a669e13e7f377dbb5b)
[モデルの外部実行 Driverless AI -MLの自動化ツール- Part 4](https://qiita.com/tom_m_m/items/c3213155bd1ac728ee07)
[Driverless AI ついに日本語化！](https://qiita.com/tom_m_m/items/8b3524c8eab6823a95f2)
[機械学習の自動化ツールをPythonから動かしてみる](https://qiita.com/tom_m_m/items/6fc902c42cc4b7226d45)