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?
python
scikit-learn
Dims
quelle
quelle
Antworten:
Ich denke du hast die falsche Version von
scikit-learn
, eine ähnliche Situation wurde hier auf GitHub beschrieben . Zuvor (vorherv0.18
)train_test_split
befand sich imcross_validation
Modul:Jetzt ist es jedoch im
model_selection
Modul:Sie benötigen also die neueste Version.
Um auf mindestens die Version zu aktualisieren
0.18
, gehen Sie wie folgt vor:(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.quelle
import sklearn
,sklearn
(yep, nur das Wort) undsklearn.__version__
? Obwohl es für Sie behoben ist, wäre es interessant zu wissen, woher das Problem stammt.Aktualisieren Sie sklearn
quelle
Beim Importieren ist dieses Problem aufgetreten
GridSearchCV
.Nur geändert
sklearn.model_selection
zusklearn.grid_search
.quelle
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:
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
quelle
hast du sklearn Wenn nicht, gehen Sie wie folgt vor:
Nach der Installation von sklearn
funktioniert gut
quelle
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
quelle
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.
wurde geändert in:
Gleiches gilt auch für GridSearchCV.
quelle
Wie @linusg sagte, besteht eine Option darin, die Kreuzvalidierung wie folgt zu importieren:
quelle
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
quelle
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!quelle
Ihre sklearn-Version ist zu niedrig und
model_selection
wird von 0.18.1 importiert. Aktualisieren Sie daher bitte die sklearn-Version.quelle