ETEを使ってPythonで決定木をシャレオツに表示

概要 PythonにはETEという木構造を可視化するためのライブラリがあります。これを使うと、下記のようなユニークな図が描けます。本記事ではこのモジュールの使い方について紹介したいと思います。 インストールは他ライブラリと同様に でOKです。 ETEオブジェクトの構成 以下は私がETEを使って作成した決定木(Irisで作成)のサンプル画像です。ETEを使うと、クラスの画像を表示したり、リーフのデータの特徴を棒グラフで表示したりと、表現の高い決定木が描けることが伝わるのではないでしょうか。 このサンプル画像には下記に示す5つの情報が含まれています。 決定木構造 分岐条件等の文字 円グラフ 写真 棒グラフ 一方、ETEではTreeオブジェクトに大きく3つの要素があり、それぞれが上記に示す各情報と次のように対応しています。 Node:決定木構造 Style:木の表示方法(サンプルでは横向きを指定) Face:それ以外(文字やグラフ等) 作成手順 オブジェクトの作成手順は①インスタンス作成、②Node定義、③Face追加、④表示方法指定です。以下順番に説明していきます。 インスタンス作成 インスタンス作成は、Treeクラスを呼び出して実行します。まずは何もないオブジェクトを作成してみます。 Tree.showと入力することで、ETEの専用ビューワーが開きます。何もないオブジェクトの場合、以下のように表示されるはずです。 Node定義 次に簡単な構造を指定してみましょう。インスタンス作成時に適当な構造を指定してみます。 Tree.showと入力することで、ちゃんと木構造が認識されていることが分かります。 後付けで構造を定義したい場合にはsearch_nodesを使って親ノードを切り替えながら、add_childを使います。 Tree.showとすれば、同様の木構造が得られます。 その他、ファイルからの読み書きや各種フォーマットに対応しており、詳細は公式のチュートリアルを参考にしてみてください。 Face追加 上記で定義した木構造から特定のノードをsearch_nodes等を用いて選択し、別途定義した各種Faceを加えることで木に様々な要素を追加できます。 ImgFaceで画像を、TextFaceで文字列のFaceを定義しています。また、add_faceで追加するFaceと順番(column)と場所(position)を指定し、ノードAに追加しています。 Tree.showとすると、文字列や写真が追加されていることが分かります。 その他のFaceやオプション引数の説明に関しては、ETEマニュアルの該当ページを確認してみてください。 表示方法指定 TreeStyleを用いることで、木構造の表示オプションを指定できます。何はともあれやってみましょう。 tsという変数をTreeStyleのインスタンスにし、細かい画面表示のオプションをしてしています。 Tree.showとすると、ちょっと不思議?な円型の木構造が表示されています。 その他の各種Faceや表示のためのオプション引数の説明に関しては、同様にETEマニュアルの該当ページを確認してみてください。 その他 ここでは紹介できませんが、上記で紹介した手順の内容以外にもNodeStyleやClusterTree等、様々な要素があります。 まとめ 木構造をシャレオツ?に可視化できるライブラリ:ETEの使い方をご紹介しました。便利で可能性の高いツールだと思いますので、皆様も是非試してみてください。 ...
2017年1月28日0 DownloadsDownload