ImportError:没有名为model_selection的模块

Dim*_*ims 85 python scikit-learn

我正在尝试使用train_test_split函数并写:

from sklearn.model_selection import train_test_split
Run Code Online (Sandbox Code Playgroud)

这就是原因

ImportError: No module named model_selection
Run Code Online (Sandbox Code Playgroud)

为什么?以及如何克服?

lin*_*usg 166

我猜你有错误的版本scikit-learn,GitHub上描述了类似的情况.之前(之前v0.18),train_test_split位于cross_validation模块中:

from sklearn.cross_validation import train_test_split
Run Code Online (Sandbox Code Playgroud)

但是,现在它在model_selection模块中:

from sklearn.model_selection import train_test_split
Run Code Online (Sandbox Code Playgroud)

所以你需要最新的版本.

要升级到至少版本0.18,请执行以下操作:

pip install -U scikit-learn
Run Code Online (Sandbox Code Playgroud)

(或者pip3,取决于您的Python版本).如果您以不同的方式安装它,请确保使用其他方法进行更新,例如使用Anaconda时.

  • 这对我来说不起作用,但Farhard Maleki的解决方案"conda update scikit-learn"确实如此. (6认同)

Far*_*eki 26

更新sklearn

conda更新scikit-learn

  • 这是有效的,接受的答案的方法没有.谢谢 (4认同)

小智 9

我导入时遇到了这个问题GridSearchCV.

刚换sklearn.model_selectionsklearn.grid_search.


Uki*_*cas 6

我在使用Jupyter Notebook时遇到了同样的问题,无论我在Python 3中更新了什么,conda,我都无法进入Jupyter:

import sklearn
print (sklearn.__version__)
0.17.1
Run Code Online (Sandbox Code Playgroud)

显示scikit-learn-0.18.1

最后,我删除了Anaconda3和Jupyter笔记本并重新安装了新的.我得到了它的工作.

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


Ale*_*x L 5

你有sklearn吗?如果不是,请执行以下操作:

sudo pip install sklearn
Run Code Online (Sandbox Code Playgroud)

安装sklearn之后

from sklearn.model_selection import train_test_split
Run Code Online (Sandbox Code Playgroud)

工作正常