概要
決定木についての詳細は記載しませんが、決定木によって生成されたモデルの可視化で一般的なのがgraphvizです。これをDocker+JuptyerLabの環境で使おうとしたら微妙にハマった部分があったので、やり方をまとめておきます。またgraphvizではなく、より分かり易い可視化でdtreevizが便利だったのでそちらも記載します。
環境
以下を参考にDockerでJupyterLabが使える状態を前提とします。
Dockerで起動したJupyterLabでvimキーバインドを使う
Dockerfile
Dockerfileに以下追記してビルドし直す事でgraphvizとdtreevizが使えるようになりました。
RUN pip install pydotplus
RUN pip install dtreeviz
RUN apt-get dist-upgrade
RUN apt-get update
RUN apt-get install -y build-essential graphviz-dev graphviz pkg-config
RUN pip install graphviz
graphvizはPythonのライブラリとLinuxのライブラリで両方入れる必要があり、
Linuxライブラリの方がなかなかうまく入ってくれなかったですが、上記でうまくできました。
Dockerfileの全体についてはこちらにもまとめてあります。
https://github.com/hikarut/Data-Science/blob/master/Dockerfile
モデルの可視化
graphviz
- 1行目:条件式
- 2行目:ジニ係数
- 3行目:ノードのサンプル数(サンプル割合)
- 4行目:クラス毎のサンプル数(サンプル割合)
dtreeviz
ソース
https://github.com/hikarut/Data-Science/blob/master/notebooks/decisionTree/sample.ipynb