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

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

新規登録して質問してみよう
ただいま回答率
85.48%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

scikit-learn

scikit-learnは、Pythonで使用できるオープンソースプロジェクトの機械学習用ライブラリです。多くの機械学習アルゴリズムが実装されていますが、どのアルゴリズムも同じような書き方で利用できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

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

Python

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

Q&A

解決済

1回答

2160閲覧

【Python】Scikit-learnのjoblib.dumpでエクスポートしたファイルをインポートできない

tantan1

総合スコア31

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

scikit-learn

scikit-learnは、Pythonで使用できるオープンソースプロジェクトの機械学習用ライブラリです。多くの機械学習アルゴリズムが実装されていますが、どのアルゴリズムも同じような書き方で利用できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

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

Python

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

0グッド

0クリップ

投稿2020/04/05 02:24

問題

Scikit-learnのjoblib.dumpでエクスポートしたファイルをインポートすると以下のエラーが出ます。
解決策を教えて下さい。

python

1Traceback (most recent call last): 2 File "c:/python/test.py", line 26, in <module> 3 clf2 = joblib.load(SAVE_FILE_PATH) 4 File "C:\Users\xxx\AppData\Local\Programs\Python\Python38-32\lib\site-packages\joblib\numpy_pickle.py", line 605, in load 5 obj = _unpickle(fobj, filename, mmap_mode) 6 File "C:\Users\xxx\AppData\Local\Programs\Python\Python38-32\lib\site-packages\joblib\numpy_pickle.py", line 529, in _unpickle 7 obj = unpickler.load() 8 File "C:\Users\xxx\AppData\Local\Programs\Python\Python38-32\lib\pickle.py", line 1210, in load 9 dispatch[key[0]](self) 10 File "C:\Users\xxx\AppData\Local\Programs\Python\Python38-32\lib\pickle.py", line 1471, in load_dict 11 items = self.pop_mark() 12 File "C:\Users\xxx\AppData\Local\Programs\Python\Python38-32\lib\pickle.py", line 1217, in pop_mark 13 self.stack = self.metastack.pop() 14IndexError: pop from empty list 15

ソースコード、ファイル

python

1import pandas as pd 2from sklearn import tree 3import joblib 4 5LOAD_FILE_PATH = "C:/python/sample/input.csv" 6SAVE_FILE_PATH = "C:/python/sample/output.clf" 7 8data = pd.read_csv(LOAD_FILE_PATH, sep=",") 9 10variables = ['x1', 'x2'] 11 12clf = tree.DecisionTreeClassifier() 13 14clf = clf.fit(data[variables], data['x3']) 15 16with open(SAVE_FILE_PATH, 'w') as f: 17 f = tree.export_graphviz(clf, out_file=f) 18 19clf2 = joblib.load(SAVE_FILE_PATH) 20 21pred2 = clf2.predict(data[['x1', 'x2']]) 22 23print(pred2) 24

input.csv

python

1x1,x2,x3 245,17.5,30 338,17.0,25 441,18.5,20 534,18.5,30 659,16.0,45 747,19.0,35 835,19.5,25 943,16.0,35 1054,18.0,35 1152,19.0,40

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

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

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

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

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

guest

回答1

0

ベストアンサー

tree.export_graphvizではなくjoblib.dumpしたものを読み込みましょう。

投稿2020/04/05 06:20

hayataka2049

総合スコア30933

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問