XGBoostのplotはGraphvizというライブラリを使っているらしい。
ちょっと触ってみた。

環境

以下の環境で実行しました。

    • macOS High Sierra 10.13.6(17G4015)

 

    • anaconda3-5.3.0

 

    Python 3.7.0

準備

予め必要なパッケージをインストールしておく

$ brew list graphviz
$ pip install graphviz

パッケージがインストールされていることを確認する

!brew list | grep graphviz
!dot -V
!pip list | grep graphviz
graphviz
dot - graphviz version 2.40.1 (20161225.0304)
graphviz                           0.10.1   

ライブラリが利用できることを確認する

import graphviz
display(graphviz.__version__)
'0.10.1'

実行

# ライブラリ読み込み
from graphviz import Digraph
# インスタンス作成
dot = Digraph()
# ノードの属性を設定
dot.attr('node', shape='circle')
# ノードを登録
dot.node('P', 'P')
dot.node('D', 'D')
dot.node('C', 'C')
dot.node('A', 'A')
# エッジの属性を登録
dot.attr('edge', arrowsize='2')
# エッジを登録
dot.edge('P', 'D')
dot.edge('D', 'C')
dot.edge('C', 'A')
dot.edge('A', 'P')
# 生成されたソースコードを確認
print(dot)
digraph {
    node [shape=circle]
    P [label=P]
    D [label=D]
    C [label=C]
    A [label=A]
    edge [arrowsize=2]
    P -> D
    D -> C
    C -> A
    A -> P
}
# 出力フォーマットを指定
dot.engine = 'circo'
dot.filename = 'PDCA'
dot.format = 'png'
dot.render(view = True)
'PDCA.png'
PDCA.png

参考資料

    • Graphviz – Graph Visualization Software

User Guide — graphviz 0.10.1 documentation

Graphvizとdot言語でグラフを描く方法のまとめ
graphviz メモ

Python Package Introduction — xgboost 0.81 documentation

Python XGBoost の変数重要度プロット / 可視化の実装 – StatsFragments

广告
将在 10 秒后关闭
bannerAds