静かなる名辞

pythonとプログラミングのこと


sklearn.tree.plot_treeをJupyter Notebookで使うと決定木の可視化が捗る・・・かな? matplotlibでできるよ

はじめに

 sklearnでは様々な方法で決定木を可視化できるのですが、これまでの方法ではそのためにはgraphvizを介する必要がありました。これは面倒くさく、トラブルの原因にもなりやすいものでした。

 scikit-learn 0.21以降ではmatplotlibでプロットしてくれるplot_tree関数が入ったので、その必要もなくなりました。

plot_treeの使い方を見てみる

 ドキュメントはこれ。

sklearn.tree.plot_tree — scikit-learn 0.21.3 documentation

 見ればわかりますが、従来のexport_graphvizをmatplotlibに移植した的な色彩が強いです。

使ってみる

 ということで意気込んでやってみた結果がこれです。

f:id:hayataka2049:20190624225504p:plain

 微妙・・・かな? なんでわざわざ図のサイズをいじっているのかというと、デフォルトのサイズが小さいからです。あと、いろいろ細かい作業をしないと思い通りの見た目にならないし、やっても結果はgraphvizのものより劣る気がします。ずいぶん箱のサイズが違うなぁと最初思ったけど、見直したらその点はgraphvizで出力しても同じでした。

まとめ

 とりあえずできます、ということで、いまいちな部分は今後の改善に期待しましょう。sklearn標準の関数でとりあえず簡易的に見る方法として一番手っ取り早いのは確かなので、気が向いたときに使うと良いと思います。