I am trying to use train_test_split
function and write:
from sklearn.model_selection import train_test_split
and this causes
ImportError: No module named model_selection
Why? And how to overcome?
This question is related to
python
scikit-learn
To install scikit-learn version 18.0, I used both commands:
conda update scikit-learn
pip install -U scikit-learn
But it does not work. There was a problem "Cannot install 'scikit-learn'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall".
Finally, i can install it by using following command:
pip install --user --upgrade scikit-learn==0.18.0
In Late September 2016, SciKit Learn 0.18 was released and there was a slight change to the code. With SciKit Learn 0.18 the train_test_split function is now imported from model_selection instead of cross_validation.
from sklearn.cross_validation import train_test_split
has been changed to :
from sklearn.model_selection import train_test_split
The same has also happened for GridSearchCV.
Adding some info to the previous answer from @linusg :
sklearn
keeps a release history of all its changes. Think of checking it from time to time. Here is the link to the documentation.
As you can see in the documentation for the version 0.18, a new module was created called model_selection
. Therefore it didn't exist in previous versions.
Update sklearn
and it will work !
As @linusg said, one option is just import crossvalidation as follows:
from sklearn import cross_validation
X_train,X_test,y_train,y_test = cross_validation.train_test_split(X,y,test_size=0.3)
conda update scikit-learn
Your sklearn version is too low, model_selection
is imported by 0.18.1, so please update the sklearn version.
Latest Stable release of sklearn 0.20.0 has train_test_split is under model_selection not under cross_validation
In order to check your sklearn version :
import sklearn print (sklearn.version) 0.20.2
do you have sklearn? if not, do the following:
sudo pip install sklearn
After installing sklearn
from sklearn.model_selection import train_test_split
works fine
I had the same problem while using Jupyter Notebook, no matter what I updated in Python 3, conda, I could not get in Jupyter:
import sklearn
print (sklearn.__version__)
0.17.1
to SHOW scikit-learn-0.18.1
Finally, I removed Anaconda3 and Jupyter Notebook and reinstalled fresh. I got it to work.
http://ukitech.blogspot.com/2017/02/sklearnmodelselection.html
I encountered this problem when I import GridSearchCV
.
Just changed sklearn.model_selection
to sklearn.grid_search
.
Source: Stackoverflow.com