Python でツリーを視覚化する

Marion Paul Kenneth Mendoza 2024年2月15日
  1. Python でツリーを視覚化する
  2. Graphviz パッケージをインストールする
  3. ツリーをドット ファイルに変換する
  4. ドット ファイルをイメージに変換する
Python でツリーを視覚化する

さまざまな理由から、ディシジョン ツリーは一般的な教師あり学習手法です。 デシジョン ツリーの利点には、分類と回帰の両方に使用できること、特徴のスケーリングが必要ないこと、デシジョン ツリーが読みやすいことが含まれます。

この記事では、決定木を表示する Python の Graphviz を示しました。

Python でツリーを視覚化する

Graphvizまたはグラフ ビジュアライゼーションは、構造情報を抽象的なグラフとネットワークの図として表現するオープンソース ソフトウェアです。 たとえば、データ サイエンスにおけるGraphvizの用途の 1つは、決定木の視覚化です。

Graphviz パッケージをインストールする

ドット ファイルを画像ファイル (PNG、JPG、SVG など) に変換するには、多くの場合、Graphviz をインストールする必要があります。これは、オペレーティング システムやその他の要因によって異なります。

dot: command not found というエラーが表示された場合は、dot 言語もインストールされていない可能性があります。

Graphviz をインストールするには、次のコマンドを実行します。

  1. 窓:

    winget install graphviz
    
  2. マック:

    brew install graphviz
    
  3. Ubuntu:

    sudo apt install graphviz
    

実行可能ファイルやその他のバージョンの手動ダウンロードなどのインストール手順については、公式 Graphviz ドキュメント を参照してください。

インストールしたら、Graphviz インストールのインストール ディレクトリ内に dot.exe ファイルがあるかどうかを確認します。これは、後で dot ファイルの視覚化を生成するために必要になります。 通常、デフォルトのインストール パスは C:\Program Files\Graphviz\bin の下です。

ツリーをドット ファイルに変換する

Graphviz の要件の 1つは dot 形式のツリーですが、まずサンプル ツリーが必要です。 Python でツリーがどのように機能するかについては、この 記事 を参照するか、この記事を読み進めるのに便利なように、以下のコマンドを使用できます。

コード例:

tree = "digraph G {Hello->World}"

open("sample.dot", "w").write(tree)

上記のコード スニペットは、単純な Hello->World 2 ノード ツリー構造を sample.dot ファイルに書き込みます。このファイルは、要件を満たすものです。 ただし、より複雑なツリーが必要な場合は、この オンライン ツリー メーカー を使用して、dot 形式で直接ダウンロードできるので便利です。

ドット ファイルをイメージに変換する

dot ファイルができたので、dot アプリケーションを使用して Graphviz 内で実行する必要があります。 前に、このセクションで必要になるので、Graphviz dot.exe パスを書き留めておくようにお願いしました。

コマンド プロンプト内でコマンド cd を使用して、dot.exe パスに移動します。

cd C:\Program Files\Graphviz\bin

ほとんどの場合、Graphviz のインストールでは環境変数に dot が含まれていないため、これを行っているため、dot.exe を使用して次のコード スニペットを実行できます。

# dot.exe -Tpng <path of the dot file> -o <destination path of the png file>
dot.exe -Tpng C:\PS\sample.dot -o C:\PS\sample.png

実行すると、ツリーの視覚的表現が PNG 形式で使用されるようになります。

Sample.dot ファイルからのサンプル ツリー

dot パラメーターの完全な情報については、dot コマンドの公式ドキュメント を参照してください。

Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

関連記事 - Python Tree