Estoy tratando de usar la train_test_split
función y escribir:
from sklearn.model_selection import train_test_split
y esto causa
ImportError: No module named model_selection
¿Por qué? ¿Y cómo superarlo?
python
scikit-learn
Atenúa
fuente
fuente
Respuestas:
Supongo que tiene la versión incorrecta de
scikit-learn
, se describió una situación similar aquí en GitHub . Anteriormente (antesv0.18
),train_test_split
estaba ubicado en elcross_validation
módulo:Sin embargo, ahora está en el
model_selection
módulo:por lo que necesitará la versión más reciente.
Para actualizar al menos a la versión
0.18
, haga:(O
pip3
, dependiendo de su versión de Python). Si lo ha instalado de una manera diferente, asegúrese de usar otro método para actualizar, por ejemplo, cuando usa Anaconda.fuente
import sklearn
,sklearn
(sí, solo la palabra) ysklearn.__version__
? Aunque ya está solucionado para usted, sería interesante saber de dónde vino el problema.Actualizar sklearn
fuente
Encontré este problema cuando importo
GridSearchCV
.Recién cambiado
sklearn.model_selection
asklearn.grid_search
.fuente
Tuve el mismo problema mientras usaba Jupyter Notebook, no importa lo que actualicé en Python 3, conda, no pude obtener en Jupyter:
para MOSTRAR scikit-learn-0.18.1
Finalmente, eliminé Anaconda3 y Jupyter Notebook y los reinstalé de nuevo. Yo tengo que trabajar.
http://ukitech.blogspot.com/2017/02/sklearnmodelselection.html
fuente
tienes sklearn? si no, haga lo siguiente:
Después de instalar sklearn
funciona bien
fuente
Para instalar scikit-learn versión 18.0, utilicé ambos comandos:
actualización de conda scikit-learn
pip install -U scikit-learn
Pero no funciona. Hubo un problema "No se puede instalar 'scikit-learn'. Es un proyecto instalado de distutils y, por lo tanto, no podemos determinar con precisión qué archivos pertenecen a él, lo que conduciría a una desinstalación parcial".
Finalmente, puedo instalarlo usando el siguiente comando:
pip install --user --upgrade scikit-learn == 0.18.0
fuente
A finales de septiembre de 2016, se lanzó SciKit Learn 0.18 y hubo un ligero cambio en el código. Con SciKit Learn 0.18, la función train_test_split ahora se importa desde model_selection en lugar de cross_validation.
ha sido cambiado a:
Lo mismo también ha sucedido con GridSearchCV.
fuente
Como dijo @linusg, una opción es simplemente importar la validación cruzada de la siguiente manera:
fuente
La última versión estable de sklearn 0.20.0 tiene train_test_split bajo model_selection no bajo cross_validation
Para verificar su versión de sklearn:
importar sklearn print ( versión sklearn. ) 0.20.2
fuente
Agregando algo de información a la respuesta anterior de @linusg:
sklearn
mantiene un historial de versiones 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 tanto, no existía en versiones anteriores.¡Actualiza
sklearn
y funcionará!fuente
Su versión de sklearn es demasiado baja, la
model_selection
importa 0.18.1, así que actualice la versión de sklearn.fuente