Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ImportError:没有名为model_selection的模块_Python_Scikit Learn - Fatal编程技术网

Python ImportError:没有名为model_selection的模块

Python ImportError:没有名为model_selection的模块,python,scikit-learn,Python,Scikit Learn,我正在尝试使用train\u test\u split函数并编写: from sklearn.model_selection import train_test_split 这导致 ImportError: No module named model_selection 为什么??如何克服呢?你需要学习吗? 如果没有,请执行以下操作: sudo pip install sklearn 安装sklearn后 from sklearn.model_selection import train_

我正在尝试使用
train\u test\u split
函数并编写:

from sklearn.model_selection import train_test_split
这导致

ImportError: No module named model_selection
为什么??如何克服呢?

你需要学习吗? 如果没有,请执行以下操作:

sudo pip install sklearn
安装sklearn后

from sklearn.model_selection import train_test_split

工作正常

我猜您使用了错误版本的
scikit learn
,类似的情况也被描述过。以前(在
v0.18
之前),
列车试验分割
位于
交叉验证
模块中:

from sklearn.cross_validation import train_test_split
from sklearn.model_selection import train_test_split
但是,现在它位于
型号选择
模块中:

from sklearn.cross_validation import train_test_split
from sklearn.model_selection import train_test_split
所以你需要最新的版本

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

pip install -U scikit-learn

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

在@linusg的上一个答案中添加一些信息:

sklearn
保存其所有更改的发布历史记录。考虑不时检查一下。是指向文档的链接

正如您在该版本的文档中所看到的,创建了一个名为
model\u selection
的新模块。因此,它在以前的版本中不存在


更新
sklearn
,它就会工作

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


刚刚将
sklearn.model_selection
更改为
sklearn.grid_search

,正如@linusg所说,一个选项是导入交叉验证,如下所示:

from sklearn import cross_validation
X_train,X_test,y_train,y_test = cross_validation.train_test_split(X,y,test_size=0.3)
更新sklearn 康达更新scikit学习


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

import sklearn
print (sklearn.__version__)
0.17.1
显示scikit-learn-0.18.1

最后,我移除了Anaconda3和Jupyter笔记本,重新安装了fresh。我让它工作了


您的sklearn版本太低,
型号选择由0.18.1导入,因此请更新sklearn版本。

要安装scikit learn版本18.0,我使用了两个命令:

康达更新scikit学习

pip安装-U scikit学习

但它不起作用。出现问题“无法安装'scikit learn'。这是一个distutils安装的项目,因此我们无法准确确定哪些文件属于它,这将导致仅部分卸载”

最后,我可以使用以下命令安装它:


pip安装--用户--升级scikit learn==0.18.0

sklearn 0.20.0的最新稳定版本已列车测试\u拆分处于型号选择中,而不是在交叉验证中

要检查您的sklearn版本:

导入sklearn 打印(sklearn.版本
0.20.2

2016年9月下旬,SciKit Learn 0.18发布,代码略有更改。使用SciKit Learn 0.18,列车测试分割功能现在从模型选择导入,而不是交叉验证

from sklearn.cross_validation import train_test_split
已更改为:

from sklearn.model_selection import train_test_split

GridSearchCV也是如此。

我突然想到,你至少在最近十个问题中没有接受任何答案。请记住,接受最有帮助的答案将有助于回答者和未来关注您问题的人。这对我不起作用,但Farhard Maleki的解决方案“conda update scikit learn”起了作用。我运行了您给出的pip命令,要求我升级pip会出错。然后我升级了pip和reran,它会告诉我没有必要升级sklearn,我已经有了最新的版本(0.17),甚至认为情况并非如此。不想讨价还价,只是想分享信息。@AlexKinman如果你安装了Python2和Python3,请确保使用“right pip”命令。你确定你没有VENV或是在正确的一个?这听起来很奇怪,你能打开一个Python shell并放入
import sklearn
sklearn
(是的,就是这个词)和
sklearn.\uu版本
?尽管它已经为您修复,但了解问题的来源还是很有意思的。sklearn Out[2]:sklearn.\uu版本\uuu Out[3]:“0.18.2”,但这是在我运行了sklearnAnyhow的Conda升级之后,很好,它现在适合您了。我没有使用过那么多的Anaconda,但我想它没有与pip集成。答案已编辑,所有Anaconda用户都会知道:)这起作用了,接受答案的方法没有。谢谢