J'essaye d'utiliser la train_test_split
fonction et d'écrire:
from sklearn.model_selection import train_test_split
et cela provoque
ImportError: No module named model_selection
Pourquoi? Et comment surmonter?
python
scikit-learn
Dims
la source
la source
Réponses:
Je suppose que vous avez la mauvaise version de
scikit-learn
, une situation similaire a été décrite ici sur GitHub . Auparavant (avantv0.18
),train_test_split
se trouvait dans lecross_validation
module:Cependant, maintenant c'est dans le
model_selection
module:vous aurez donc besoin de la dernière version.
Pour mettre à niveau vers au moins la version
0.18
, procédez comme suit:(Ou
pip3
, selon votre version de Python). Si vous l'avez installé d'une manière différente, assurez-vous d'utiliser une autre méthode de mise à jour, par exemple lors de l'utilisation d'Anaconda.la source
import sklearn
,sklearn
(oui, juste le mot) etsklearn.__version__
? Même s'il est résolu pour vous, il serait intéressant de savoir d'où vient le problème.Mettre à jour sklearn
la source
J'ai rencontré ce problème lors de l'importation
GridSearchCV
.Juste changé
sklearn.model_selection
ensklearn.grid_search
.la source
J'ai eu le même problème en utilisant Jupyter Notebook, peu importe ce que j'ai mis à jour dans Python 3, conda, je ne pouvais pas entrer dans Jupyter:
pour MONTRER scikit-learn-0.18.1
Enfin, j'ai supprimé Anaconda3 et Jupyter Notebook et réinstallé à neuf. Je l'ai fait fonctionner.
http://ukitech.blogspot.com/2017/02/sklearnmodelselection.html
la source
avez-vous sklearn? sinon, procédez comme suit:
Après avoir installé sklearn
fonctionne bien
la source
Pour installer scikit-learn version 18.0, j'ai utilisé les deux commandes:
mise à jour conda scikit-learn
pip install -U scikit-learn
Mais ça ne marche pas. Il y a eu un problème "Impossible d'installer 'scikit-learn'. C'est un projet installé par distutils et nous ne pouvons donc pas déterminer avec précision quels fichiers lui appartiennent, ce qui ne conduirait qu'à une désinstallation partielle".
Enfin, je peux l'installer en utilisant la commande suivante:
pip install --user --upgrade scikit-learn == 0.18.0
la source
Fin septembre 2016, SciKit Learn 0.18 est sorti et il y a eu un léger changement dans le code. Avec SciKit Learn 0.18, la fonction train_test_split est désormais importée de model_selection au lieu de cross_validation.
a été changé en:
La même chose s'est produite pour GridSearchCV.
la source
Comme @linusg l'a dit, une option consiste simplement à importer la validation croisée comme suit:
la source
La dernière version stable de sklearn 0.20.0 a train_test_split est sous model_selection pas sous cross_validation
Afin de vérifier votre version de sklearn:
importer sklearn print ( version sklearn) 0.20.2
la source
Ajout d'informations à la réponse précédente de @linusg:
sklearn
conserve un historique des versions de tous ses changements. Pensez à le vérifier de temps en temps. Voici le lien vers la documentation.Comme vous pouvez le voir dans la documentation de la version 0.18 , un nouveau module a été créé appelé
model_selection
. Par conséquent, il n'existait pas dans les versions précédentes.Mettez à jour
sklearn
et cela fonctionnera!la source
Votre version de sklearn est trop basse,
model_selection
est importée par 0.18.1, veuillez donc mettre à jour la version de sklearn.la source