ImportError: no se puede importar el nombre de cross_validation

No puedo importar la validación cruzada de la biblioteca sklearn; Uso la versión 0.20.0 de Sklearn.

from sklearn import cross_validation 

más adelante en el código:

 features_train, features_test, labels_train, labels_test = cross_validation.train_test_split(word_data, authors, test_size=0.1, random_state=42) 

Error:

 Traceback (most recent call last): File "D:\me\M.Sc\Udacity_ML_course\ud120-projects- master\naive_bayes\nb_author_id.py", line 16, in  from email_preprocess import preprocess File "../tools/email_preprocess.py", line 8, in  from sklearn import cross_validation ImportError: cannot import name cross_validation 

Esto sucede porque no hay ningún objeto sklearn en sklearn . Es probable que estés buscando algo más parecido a la función cross_validate . Puedes acceder a eso a través de

 from sklearn.model_selection import cross_validate 

Sin embargo, no es necesario importar ningún software de validación cruzada para realizar la división de la prueba del tren, ya que esto solo tomará muestras aleatorias de los datos. Tratar

 from sklearn.model_selection import train_test_split 

seguido por

 features_train, features_test, labels_train, labels_test = train_test_split(word_data, authors, test_size=0.1, random_state=42) 

cross_validation solía existir como un paquete Scikit *, pero fue desaprobado en algún momento.

Si está buscando train_test_split como indica su código, está en model_selection :

 from sklearn import model_selection features_train, features_test, labels_train, labels_test = model_selection.train_test_split( word_data, authors, test_size=0.1, random_state=42) 

* Parece que esto cambió en 0.18 .