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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Unicode

Unicodeはエンコーディングの標準規格です。1つの文字コード体系で多国語の表現を可能にすることを目指して作られています。

機械学習

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

Python

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

Q&A

解決済

2回答

1443閲覧

決定木の出力 UnicodeDecodeError

Toru_Takakura

総合スコア5

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Unicode

Unicodeはエンコーディングの標準規格です。1つの文字コード体系で多国語の表現を可能にすることを目指して作られています。

機械学習

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

Python

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

0グッド

1クリップ

投稿2020/07/24 05:08

前提・実現したいこと

jupyter notebookでデータ分析の学習をしています。
決定木が表示されません。

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

unicodeがおかしいようなのですが、よくわかりません。

g = pydotplus.graph_from_dot_file(path="tree.dot") Image(g.create_png()) UnicodeDecodeError Traceback (most recent call last) <ipython-input-14-2c212d0e8e24> in <module> 1 g = pydotplus.graph_from_dot_file(path="tree.dot") ----> 2 Image(g.create_png()) ~\anaconda\lib\site-packages\pydotplus\graphviz.py in <lambda>(f, prog) 1789 self.__setattr__( 1790 'create_' + frmt, -> 1791 lambda f=frmt, prog=self.prog: self.create(format=f, prog=prog) 1792 ) 1793 f = self.__dict__['create_' + frmt] ~\anaconda\lib\site-packages\pydotplus\graphviz.py in create(self, prog, format) 2016 stderr_output = NULL_SEP.join(stderr_output) 2017 if PY3: -> 2018 stderr_output = stderr_output.decode(sys.stderr.encoding) 2019 2020 # pid, status = os.waitpid(p.pid, 0) UnicodeDecodeError: 'utf-8' codec can't decode byte 0x82 in position 14: invalid start byte

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

まずtree.dotをメモ帳など、エンコーディングを指定して保存できるテキストエディタで開きます。
次にファイルの先頭付近で以下のようにフォントを指定します。
最後にUTF-8で保存します。

Dot

1graph g{ 2 graph [fontname = "MS UI Gothic"]; 3 node [fontname = "MS UI Gothic"]; 4 edge [fontname = "MS UI Gothic"]; 5 6 "以下略" 7}

イメージ説明

投稿2020/07/24 22:11

can110

総合スコア38233

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

決定木に入れるデータでUTF-8以外の文字コードを使用していているのかと思います。

Python側はUTF-8と思って処理しているので、0x82コードが理解できんよと言っています。
くわしくは第6回 先行バイトの埋め込み

要は、決定木に読み込ませるデータをUTF-8にしたらよいと思います。
また、特に日本語が必須でなければ英数字のみにて。

投稿2020/07/24 06:11

aokikenichi

総合スコア2210

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Toru_Takakura

2020/07/24 13:34

読み込ませるデータの文字コードをutf-8にすればよいというのは分かったのですが ファイルの文字コードの変換方法が分からず解決できていないです。 コマンドプロンプトなどでコマンドを叩くのでしょうか?
aokikenichi

2020/07/25 01:18

文字コード 変換 あたりでググればすぐ分かると思いますが、、、 あなたがどうファイルを扱っているかでいろいろ変わります Python内で変換する方法 テキストエディタで変換する方法 文字コード変換プログラムで変換する方法 OSによっても違います Windowsならばメモ帳でも可能です。
Toru_Takakura

2020/07/26 16:51

ありがとうございます。 Python内でUTF-8に変換し、解決しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問