例として虹彩を見てみましょう:
from sklearn import tree
from sklearn.datasets import load_iris
iris = load_iris()
clf = tree.DecisionTreeClassifier()
次の決定木を生成します。
ステップ 1: 公式 Web サイトにアクセスして、graphviz をダウンロードします。
独自のアナコンダの下の \Lib\site-packages\ にインストールすることをお勧めします
ステップ 2: 名前を変更する
たとえば、anaconda の下の \Lib\site-packages\ にインストールしたところ、ファイル名はデフォルトで大文字の Graphviz でしたが、便宜上、graphviz に変更しました。
ステップ 3: 環境変数を構成する
システムおよびユーザー環境変数へのパスを追加します: C:\Anaconda01\Lib\site-packages\graphviz\bin
もちろん、インストール時に環境変数の追加にチェックを入れておけば、気にする必要はありません。
ステップ 3: 対応する python 環境で graphviz をダウンロードする
pip install graphviz
この時点で、ファイル C:\Anaconda01\Lib\site-packages\graphviz が変更され、さらに多くの python ファイルが含まれています。
ステップ 4: 簡単なデモンストレーション
リーグ・オブ・レジェンドの一連の勝敗データを例に取ります:リンクはこちら
from sklearn import tree
from graphviz import sources
DT = tree.DecisionTreeClassifier(criterion='entropy',max_depth=4,min_samples_split=500)
DT = DT.fit(x_train,y_train)
# export_graphviz 还支持各种美化,包括通过他们的类着色节点(或回归值),
# 如果需要,还能使用显式变量和类名。Jupyter notebook也可以自动内联式渲染这些绘制节点:
dot_data = tree.export_graphviz(DT, out_file=None, feature_names=feature_names, class_names=['lose','win'], filled=True, rounded=True, special_characters=True)
graph = sources.Source(dot_data)
graph.render("DT") # 保存成pdf
graph
ご覧のとおり、左側の青い側がすべて負け、右側が勝ち、真ん中に敗者と勝者がいます。
また、graphvizは様々な用途があり、自分でノードを設定することもできますし、興味があれば自分で確認することもできます。