Festina lente

急がば回れ(ラテン語)。時には寄り道も。

Scikit-learnで決定木の絵を描く

仕事で決定木(Decision-Tree)*1を使って結果を出そう、という段になって
公式ページを参考に小さなデータで
お試しを実行してみよう、、というところまでは良かったのですが、、


このページの通り、、、

>>> from sklearn.datasets import load_iris
>>> from sklearn import tree
>>>
>>> clf = tree.DecisionTreeClassifier()
>>> iris = load_iris()
>>>
>>> clf = clf.fit(iris.data, iris.target)
>>> tree.export_graphviz(clf,
...     out_file='tree.dot')   

ここまではうまくいくんです*2。しかし、可視化しようと思ってgraphvizてやつでpythonでimportしてみても、簡単なものでも実行できないんですよね。。(涙)

>>> dot -Tpng tree.dot -o tree.png
  File "<ipython-input-70-42f931462896>", line 1
    dot -Tpng tree.dot -o tree.png
                 ^
SyntaxError: invalid syntax

ん?と思って、コマンド・プロンプト上で実行したんですが、

C:\Users\t-kiwasaki\Documents\Python Scripts>dot -Tpng tree.dot -o tree.png
'dot' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

あァ~(^_^;)

ということで、いろいろ調べてみたら


なんかなー、と思いつつ、後者を試したところお目当てのtreeは書けました♪
f:id:kyoro1:20150820181745p:plain

Learning scikit-learn: Machine Learning in Python

Learning scikit-learn: Machine Learning in Python


決定木自体は処理できても、可視化の部分で結構時間を取られちゃいました(大汗)
歯切れが悪くてすみません。*3

家のMacでGraphvizをインストールしてみたら、うまく行きました、という話を別で記事にしました
kyoro1.hatenablog.com


参考URL

*1:ていう分析手法

*2:一応、sample code通りですし、、、

*3:うまく行きそうな話を見つけたら、別で記事を書きます!