Ich versuche, train_test_split
Funktion zu verwenden und zu schreiben:
from sklearn.model_selection import train_test_split
und das verursacht
ImportError: No module named model_selection
Warum? Und wie zu überwinden?
Ich versuche, train_test_split
Funktion zu verwenden und zu schreiben:
from sklearn.model_selection import train_test_split
und das verursacht
ImportError: No module named model_selection
Warum? Und wie zu überwinden?
Antworten:
Ich denke du hast die falsche Version von scikit-learn
, eine ähnliche Situation wurde hier auf GitHub beschrieben . Zuvor (vorher v0.18
) train_test_split
befand sich im cross_validation
Modul:
from sklearn.cross_validation import train_test_split
Jetzt ist es jedoch im model_selection
Modul:
from sklearn.model_selection import train_test_split
Sie benötigen also die neueste Version.
Um auf mindestens die Version zu aktualisieren 0.18
, gehen Sie wie folgt vor:
pip install -U scikit-learn
(Oder pip3
abhängig von Ihrer Python-Version). Wenn Sie es auf eine andere Weise installiert haben, stellen Sie sicher, dass Sie zum Aktualisieren eine andere Methode verwenden, z. B. bei Verwendung von Anaconda.
import sklearn
, sklearn
(yep, nur das Wort) und sklearn.__version__
? Obwohl es für Sie behoben ist, wäre es interessant zu wissen, woher das Problem stammt.
conda update scikit-learn
Ich hatte das gleiche Problem bei der Verwendung von Jupyter Notebook, egal was ich in Python 3 aktualisiert habe, conda, ich konnte nicht in Jupyter bekommen:
import sklearn
print (sklearn.__version__)
0.17.1
scikit-learn-0.18.1 ZEIGEN
Schließlich entfernte ich Anaconda3 und Jupyter Notebook und installierte es neu. Ich habe es zum Laufen gebracht.
http://ukitech.blogspot.com/2017/02/sklearnmodelselection.html
Um scikit-learn Version 18.0 zu installieren, habe ich beide Befehle verwendet:
conda update scikit-learn
pip install -U scikit-learn
Aber es funktioniert nicht. Es gab ein Problem "Scikit-Learn kann nicht installiert werden. Es handelt sich um ein von distutils installiertes Projekt, und daher können wir nicht genau bestimmen, welche Dateien dazu gehören, was nur zu einer teilweisen Deinstallation führen würde."
Schließlich kann ich es mit folgendem Befehl installieren:
pip install --user --upgrade scikit-learn == 0.18.0
Ende September 2016 wurde SciKit Learn 0.18 veröffentlicht und der Code wurde geringfügig geändert. Mit SciKit Learn 0.18 wird die Funktion train_test_split jetzt aus model_selection anstelle von cross_validation importiert.
from sklearn.cross_validation import train_test_split
wurde geändert in:
from sklearn.model_selection import train_test_split
Gleiches gilt auch für GridSearchCV.
Die neueste stabile Version von sklearn 0.20.0 hat train_test_split unter model_selection und nicht unter cross_validation
So überprüfen Sie Ihre sklearn-Version:
import sklearn print (sklearn. version ) 0.20.2
Hinzufügen einiger Informationen zur vorherigen Antwort von @linusg:
sklearn
führt einen Release-Verlauf aller Änderungen. Denken Sie daran, es von Zeit zu Zeit zu überprüfen. Hier ist der Link zur Dokumentation.
Wie Sie in der Dokumentation zur Version 0.18 sehen können , wurde ein neues Modul namens erstellt model_selection
. Daher existierte es in früheren Versionen nicht.
Update sklearn
und es wird funktionieren!
Ihre sklearn-Version ist zu niedrig und model_selection
wird von 0.18.1 importiert. Aktualisieren Sie daher bitte die sklearn-Version.