ポートフォリオサイト公開中

【備忘録】cannot import name ‘cross_validation’ from ‘sklearn’

こんにちは、ともろう(@tomorrowSLog)です。

機械学習の勉強中に出てきたエラーコードcannot import name ‘cross_validation’ from ‘sklearn’の解消法を備忘録的に書いています。


コード

pythonで動かして学ぶ!深層学習の教科書の第2章を進めているところで問題のエラーが出てきました。

開発環境

macOS Sierra10.12.6
Python 3.7.1

scikit-learn-0.20.2

問題箇所

コード全文
from sklearn import svm, datasets, cross_validation

iris = datasets.load_iris()
X = iris.data
y = iris.target

svc = svm.SVC(C=1, kernel="rbf", gamma=0.001)

scores = cross_validation.cross_val_score(svc, X, y, cv=5)
print(scores)
print("平均スコア :", scores.mean())
エラー出力
ImportError: cannot import name 'cross_validation' from 'sklearn'

対処法

cross_validationをmodel_selectionに変更しました。

対処後
from sklearn import svm, datasets, model_selection

iris = datasets.load_iris()
X = iris.data
y = iris.target

svc = svm.SVC(C=1, kernel="rbf", gamma=0.001)

scores = model_selection.cross_val_score(svc, X, y, cv=5)
print(scores)
print("平均スコア :", scores.mean())
出力
[0.86666667 0.96666667 0.83333333 0.96666667 0.93333333]
平均スコア : 0.9133333333333334
参考 ImportError: No module named model_selectiongithub.com

他にやってみたこと

scikit-learnをアップデート

scikit-learnが最新版出ないから出たエラーなのかと思ってアップデートしてみましたが、変わりませんでした。

 

1 COMMENT

tandreach

はじめまして。こんにちわ。
既知かもしれませんが、どうやらscikit-learnが
ver0.19以降でのcross_valを削除したようです。
開発側は5年以上前から決めていたようです。

返信する

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です