web-dev-qa-db-ja.com

ImportError:model_selectionという名前のモジュールはありません

私はtrain_test_split関数を使って書きます:

from sklearn.model_selection import train_test_split

これが原因

ImportError: No module named model_selection

どうして?そしてどのように克服するのですか?

74
Dims

私はあなたがscikit-learnの間違ったバージョンを持っていると思います、同様の状況は ここでGitHubで説明されていました 。以前(v0.18の前)、train_test_splitcross_validationモジュールにありました。

from sklearn.cross_validation import train_test_split

しかし、現在はmodel_selectionモジュールにあります。

from sklearn.model_selection import train_test_split

それで、あなたは最新版を必要とするでしょう。

少なくともバージョン0.18にアップグレードするには、次のようにします。

pip install -U scikit-learn

(Pythonのバージョンによってはpip3)。別の方法でインストールした場合は、Anacondaを使用している場合など、必ず別の方法で更新してください。

143
linusg

Sklearnを更新する

conda更新scikit-learn

22
Farhad Maleki

GridSearchCVをインポートしたときにこの問題が発生しました。

sklearn.model_selectionsklearn.grid_searchに変更しただけです。

8
curry_xyd

Jupyter Notebookを使っているときに同じ問題を抱えていましたが、Python 3で何を更新したとしても、Jupyterに入ることはできませんでした。

import sklearn
print (sklearn.__version__)
0.17.1

scikit-learn-0.18.1へのアクセス

最後に、私はAnaconda 3とJupyter Notebookを削除し、そして新たに再インストールした。私はそれを働かせました。

http://ukitech.blogspot.com/2017/02/sklearnmodelselection.html

6
Uki D. Lucas

スカルーンはありますか?そうでない場合は、次の操作を行います。

Sudo pip install sklearn

Sklearnをインストールした後

from sklearn.model_selection import train_test_split

正常に動作します

4
Alex L

Scikit-learnバージョン18.0をインストールするために、両方のコマンドを使用しました。

conda更新scikit-learn

pipインストール-U scikit-learn

しかし、うまくいきません。 「 'scikit-learn'をインストールできない。これはdistutilsによってインストールされたプロジェクトなので、どのファイルがそれに属しているのかを正確に判断できないため、部分的なアンインストールしかできない」.

最後に、私は次のコマンドを使用してそれをインストールすることができます。

pip install --user --upgrade scikit-learn == 0.18.0

3
Minh Vo

@linusgが言ったように、1つの選択肢は以下のように単にインポート相互検証です:

from sklearn import cross_validation
X_train,X_test,y_train,y_test = cross_validation.train_test_split(X,y,test_size=0.3)
2
MCardus

Sklearn 0.20.0の最新安定版リリースは train_test_split はmodel_selectionの下にはありません cross_validation

Sklearnのバージョンを確認するには

インポートsklearn印刷(sklearn.バージョン )0.20.2

1

@linusgからの前回の回答にinfoを追加します。

sklearnはそのすべての変更のリリース履歴を保持します。時々それをチェックすることを考えてください。 He​​re はドキュメントへのリンクです。

バージョン 0.18 のドキュメントに見られるように、model_selectionという新しいモジュールが作成されました。そのため、以前のバージョンには存在しませんでした。

sklearnを更新すればうまくいきます。

1
MMF

2016年9月下旬、SciKit Learn 0.18がリリースされ、コードにわずかな変更が加えられました。 SciKit Learn 0.18では、cross_validationではなくmodel_selectionからtrain_test_split関数がインポートされるようになりました。

from sklearn.cross_validation import train_test_split

に変更されました:

from sklearn.model_selection import train_test_split

同じことがGridSearchCVでも発生しました。

みんな、ありがとう!

1
Paras Patidar

あなたのSklearnのバージョンが低すぎます、model_selectionは0.18.1までにインポートされているので、Sklearnのバージョンを更新してください。

0
Changyuan Chen