質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.48%

  • Python

    12197questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • 機械学習

    983questions

    機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

ランダムフォレストのgraphvizによる可視化が上手くいかない

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 467

YZYZ

score 13

前提・実現したいこと

ランダムフォレストで作った木をgraphvizで可視化すること

発生している問題・エラーメッセージ

# 
---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
~\Anaconda3\lib\site-packages\graphviz\backend.py in run(cmd, input, capture_output, check, quiet, **kwargs)
    146     try:
--> 147         proc = subprocess.Popen(cmd, startupinfo=get_startupinfo(), **kwargs)
    148     except OSError as e:

~\Anaconda3\lib\subprocess.py in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, encoding, errors)
    708                                 errread, errwrite,
--> 709                                 restore_signals, start_new_session)
    710         except:

~\Anaconda3\lib\subprocess.py in _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, unused_restore_signals, unused_start_new_session)
    996                                          os.fspath(cwd) if cwd is not None else None,
--> 997                                          startupinfo)
    998             finally:

FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。

During handling of the above exception, another exception occurred:

ExecutableNotFound                        Traceback (most recent call last)
~\Anaconda3\lib\site-packages\IPython\core\formatters.py in __call__(self, obj)
    343             method = get_real_method(obj, self.print_method)
    344             if method is not None:
--> 345                 return method()
    346             return None
    347         else:

~\Anaconda3\lib\site-packages\graphviz\files.py in _repr_svg_(self)
    104 
    105     def _repr_svg_(self):
--> 106         return self.pipe(format='svg').decode(self._encoding)
    107 
    108     def pipe(self, format=None, renderer=None, formatter=None):

~\Anaconda3\lib\site-packages\graphviz\files.py in pipe(self, format, renderer, formatter)
    126         data = text_type(self.source).encode(self._encoding)
    127 
--> 128         out = backend.pipe(self._engine, format, data, renderer, formatter)
    129 
    130         return out

~\Anaconda3\lib\site-packages\graphviz\backend.py in pipe(engine, format, data, renderer, formatter, quiet)
    204     """
    205     cmd, _ = command(engine, format, None, renderer, formatter)
--> 206     out, _ = run(cmd, input=data, capture_output=True, check=True, quiet=quiet)
    207     return out
    208 

~\Anaconda3\lib\site-packages\graphviz\backend.py in run(cmd, input, capture_output, check, quiet, **kwargs)
    148     except OSError as e:
    149         if e.errno == errno.ENOENT:
--> 150             raise ExecutableNotFound(cmd)
    151         else:  # pragma: no cover
    152             raise

ExecutableNotFound: failed to execute ['dot', '-Tsvg'], make sure the Graphviz executables are on your systems' PATH

<graphviz.files.Source at 0x1febab4f7f0>

​

該当のソースコード

from sklearn.tree import export_graphviz
export_graphviz(tree, out_file="tree.dot", class_names=["win", "lose"], feature_names=df_data.columns, impurity=False, filled=True)


import graphviz

with open("tree.dot") as f:
    dot_graph = f.read()
graphviz.Source(dot_graph)

試したこと

コピペしてググり、PATHを通す必要があるとわかった。
しかしいまだに解決できていない。

補足情報(FW/ツールのバージョンなど)

Python3
graphvizはすでにpipでインストールされています。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+2

pipでインストールできるgraphvizとは別にGraphviz本体をインストールする必要がありますが、実行しましたか?

https://teratail.com/questions/164385

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/12/28 21:09 編集

    YZYZ 2018/12/28 21:04
    ご回答ありがとうございます。
    その点は気づいていなかったので今インストールしました。しかし、インストールした後で実行しても同じエラーが出るようです。PATHに関して、ユーザー環境変数しかいじれていないことが原因かもしれませんが。

    hayataka2049 2018/12/28 21:07
    コマンドプロンプトでdotコマンドは実行できますか? Graphviz本体の実行ファイルにパスを通す必要があります。
    環境によって変わる可能性がありますが、私がインストールしたところ
    C:\Program Files (x86)\Graphviz2.38\bin
    に実行ファイルが入りました。インストール先を探してそこにパスを通してください。

    hayataka2049 2018/12/28 21:08
    返信してから気づいたけど、こっちの回答じゃなくてあなたの質問への回答にレスつけてください。上のやり取りは私がコピペしておきます。

    以上リンク先回答欄よりコピペ

    キャンセル

  • 2018/12/28 22:47

    レスに関しては素でミスってました!ご対応くださりありがとうございます。

    graphbizは確かに同じところにあります。

    システムの詳細設定からのシステム環境変数から
    C:\Program Files (x86)\Graphviz2.38\bin\dot.exe
    のパスを通したんですけどこれでもエラーが変わらないです、、、

    キャンセル

  • 2018/12/28 22:49

    C:\Program Files (x86)\Graphviz2.38\bin\dot.exe
    をパスに追加するのではなく
    C:\Program Files (x86)\Graphviz2.38\bin
    をパスに追加するのですが、そこは間違えていませんか?

    キャンセル

  • 2018/12/29 13:02

    先ほど再起動したらできました!
    ありがとうございました!!

    キャンセル

同じタグがついた質問を見る

  • Python

    12197questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • 機械学習

    983questions

    機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。