ImportError: ningún módulo llamado model_selection

Estoy tratando de usar la función train_test_split y escribo:

 from sklearn.model_selection import train_test_split 

y esto causa

 ImportError: No module named model_selection 

¿Por qué? ¿Y cómo superar?

Related of "ImportError: ningún módulo llamado model_selection"

Supongo que tienes la versión incorrecta de scikit-learn , una situación similar se describió aquí en GitHub . Anteriormente (antes de v0.18 ), train_test_split se encontraba en el módulo cross_validation :

 from sklearn.cross_validation import train_test_split 

Sin embargo, ahora está en el módulo model_selection :

 from sklearn.model_selection import train_test_split 

así que necesitarás la versión más nueva.

Para actualizar al menos a la versión 0.18 , haga:

 pip install -U scikit-learn 

(O pip3 , dependiendo de tu versión de Python). Si lo instaló de otra manera, asegúrese de usar otro método para actualizar, por ejemplo, cuando use Anaconda.

Actualizar sklearn

actualización de Conda scikit-learn

Encontré este problema cuando importo GridSearchCV .

Acaba de cambiar sklearn.model_selection a sklearn.grid_search .

Tuve el mismo problema al usar Jupyter Notebook, sin importar lo que haya actualizado en Python 3, conda, no pude obtenerlo en Jupyter:

 import sklearn print (sklearn.__version__) 0.17.1 

para MOSTRAR scikit-learn-0.18.1

Finalmente, quité Anaconda3 y Jupyter Notebook y volví a instalar. Yo tengo que trabajar.

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

tienes sklearn Si no, haz lo siguiente:

 sudo pip install sklearn 

Después de instalar sklearn

 from sklearn.model_selection import train_test_split 

funciona bien

Para instalar la versión 18.0 de scikit-learn, usé ambos comandos:

actualización de Conda scikit-learn

pip instalar -U scikit-learn

Pero no funciona. Hubo un problema: “No se puede instalar ‘scikit-learn’. Es un proyecto instalado de distritos y, por lo tanto, no podemos determinar con precisión qué archivos pertenecen a él, lo que llevaría a una desinstalación parcial”.

Finalmente, puedo instalarlo usando el siguiente comando:

pip instalar –usuario – actualizar scikit-learn == 0.18.0

Como dijo @linusg, una opción es importar la validación cruzada de la siguiente manera:

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

Agregando algo de información a la respuesta anterior de @linusg:

sklearn mantiene un historial de lanzamiento de todos sus cambios. Piense en comprobarlo de vez en cuando. Aquí está el enlace a la documentación.

Como puede ver en la documentación de la versión 0.18 , se creó un nuevo módulo llamado model_selection . Por lo tanto, no existía en versiones anteriores.

Actualiza sklearn y funcionará!

Su versión de sklearn es demasiado baja, model_selection se importa por 0.18.1, así que actualice la versión de sklearn.

La última versión estable de sklearn 0.20.0 tiene train_test_split está bajo model_selection no under cross_validation

Para comprobar tu versión sklearn:

importar sklearn print (sklearn. version ) 0.20.2