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

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

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

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

Q&A

解決済

2回答

1912閲覧

ImportError:について

gaijin

総合スコア30

Python 3.x

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

0グッド

1クリップ

投稿2018/11/25 13:48

python初心者です。

教本にて独学にて勉強しております。

sklearn パッケージをインストールしております。

コードを実行しようとするとこのようなエラーが出ます。
自分で調べいろいろ試してみてるのですが、解決できません。。

どうぞご教授いただきたく思います。
下記がコードです。

from sklearn import datasets, cross_validation, svm, metrics digits = datasets.load_digits() data_train, data_test, label_train, label_test = \ cross_validation.train_test_split(digits.data, digits.target) clf = svm.SVC(gamma=0.001) clf.fit(data_train, label_train) predict = clf.predict(data_test) ac_score = metrics.accuracy_score(label_test, predict) cl_report = metrics.classification_report(label_test, predict) print("分類器の情報", clf) print("正解率=", ac_score) print("レポート=\n", cl_report)
$ python3 handwriting.py ImportError: cannot import name 'cross_validation' from 'sklearn' (/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/__init__.py)

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

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

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

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

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

guest

回答2

0

ベストアンサー

おそらく古いソースコードを利用していると思われます。
現在cross_validation関数の定義場所は変更されていますので、ソースの修正が必要です。
参考:scikit-learnのtrain_test_splitで訓練データとテストデータを分割する

Python

1#from sklearn import datasets, cross_validation, svm, metrics 2from sklearn import datasets, svm, metrics 3from sklearn.model_selection import train_test_split 4 5digits = datasets.load_digits() 6 7#data_train, data_test, label_train, label_test = \ 8# cross_validation.train_test_split(digits.data, digits.target) 9data_train, data_test, label_train, label_test = \ 10 train_test_split(digits.data, digits.target) 11 12clf = svm.SVC(gamma=0.001) 13clf.fit(data_train, label_train) 14 15predict = clf.predict(data_test) 16 17ac_score = metrics.accuracy_score(label_test, predict) 18cl_report = metrics.classification_report(label_test, predict) 19print("分類器の情報", clf) 20print("正解率=", ac_score) 21print("レポート=\n", cl_report) 22""" 23分類器の情報 SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, 24 decision_function_shape='ovr', degree=3, gamma=0.001, kernel='rbf', 25 max_iter=-1, probability=False, random_state=None, shrinking=True, 26 tol=0.001, verbose=False) 27正解率= 0.9866666666666667 28レポート= 29 precision recall f1-score support 30 31 0 1.00 0.98 0.99 46 32 1 0.98 0.98 0.98 54 33 2 1.00 1.00 1.00 49 34 3 1.00 1.00 1.00 42 35 4 0.98 1.00 0.99 44 36 5 1.00 0.98 0.99 47 37 6 1.00 1.00 1.00 40 38 7 1.00 1.00 1.00 45 39 8 0.93 0.98 0.95 41 40 9 0.98 0.95 0.96 42 41 42 micro avg 0.99 0.99 0.99 450 43 macro avg 0.99 0.99 0.99 450 44weighted avg 0.99 0.99 0.99 450 45"""

投稿2018/11/25 14:14

can110

総合スコア38233

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

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

gaijin

2018/11/25 20:21

ここまで丁寧に本当にありがとうございます。知らなければ永遠に教本を信じ進めてるところでした。 ありがとうございます!!
guest

0

参考にしている資料が古いのかと思います。

sklearnのcross_validationモジュールはかつて存在しましたが、最新のバージョンでは消滅しています。

cross_validation以下に存在した関数・クラス等は、基本的にはmodel_selectionモジュールに移動しています(ただし一部仕様が変わっている部分もあります)。train_test_splitmodel_selectionから呼べるので、そちらをimportして使ってください。

sklearn.model_selection.train_test_split — scikit-learn 0.20.1 documentation

投稿2018/11/25 14:07

編集2018/11/25 14:13
hayataka2049

総合スコア30933

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

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

gaijin

2018/11/25 20:23

いつも丁寧な解説感謝しております! 解決できました! 本当にありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問