Próbuję użyć train_test_split
funkcji i napisać:
from sklearn.model_selection import train_test_split
i to powoduje
ImportError: No module named model_selection
Czemu? A jak pokonać?
python
scikit-learn
Dims
źródło
źródło
Odpowiedzi:
Chyba masz złą wersję
scikit-learn
, podobna sytuacja została opisana tutaj na GitHubie . Wcześniej (wcześniejv0.18
)train_test_split
znajdowało się wcross_validation
module:from sklearn.cross_validation import train_test_split
Jednak teraz jest w
model_selection
module:from sklearn.model_selection import train_test_split
więc będziesz potrzebować najnowszej wersji.
Aby zaktualizować do przynajmniej wersji
0.18
, wykonaj:(Lub
pip3
, w zależności od twojej wersji Pythona). Jeśli zainstalowałeś go w inny sposób, upewnij się, że używasz innej metody aktualizacji, na przykład podczas korzystania z Anacondy.źródło
import sklearn
,sklearn
(tak, właśnie to słowo) isklearn.__version__
? Nawet jeśli problem został rozwiązany, warto wiedzieć, skąd się wziął.Zaktualizuj sklearn
źródło
Napotkałem ten problem podczas importu
GridSearchCV
.Właśnie zmieniono
sklearn.model_selection
nasklearn.grid_search
.źródło
Miałem ten sam problem podczas korzystania z Jupyter Notebook, bez względu na to, co zaktualizowałem w Pythonie 3, conda, nie mogłem uzyskać w Jupyter:
import sklearn print (sklearn.__version__) 0.17.1
POKAŻ scikit-learn-0.18.1
Wreszcie usunąłem Anaconda3 i Jupyter Notebook i ponownie zainstalowałem nowy. Mam to do pracy.
http://ukitech.blogspot.com/2017/02/sklearnmodelselection.html
źródło
czy masz sklearn? jeśli nie, wykonaj następujące czynności:
Po zainstalowaniu sklearn
from sklearn.model_selection import train_test_split
działa w porządku
źródło
Aby zainstalować scikit-learn w wersji 18.0, użyłem obu poleceń:
aktualizacja conda scikit-learn
pip install -U scikit-learn
Ale to nie działa. Wystąpił problem „Nie można zainstalować 'scikit-learn'. Jest to projekt zainstalowany w dystrybucji distutils i dlatego nie możemy dokładnie określić, które pliki do niego należą, co doprowadziłoby tylko do częściowego odinstalowania”.
Wreszcie mogę go zainstalować za pomocą następującego polecenia:
pip install --user --upgrade scikit-learn == 0.18.0
źródło
Pod koniec września 2016, SciKit Learn 0.18 został wydany i nastąpiła niewielka zmiana w kodzie. W SciKit Learn 0.18 funkcja train_test_split jest teraz importowana z modelu_selection zamiast cross_validation.
from sklearn.cross_validation import train_test_split
został zmieniony na:
from sklearn.model_selection import train_test_split
To samo stało się z GridSearchCV.
źródło
Jak powiedział @linusg, jedną z opcji jest po prostu import krzyżowej walidacji w następujący sposób:
from sklearn import cross_validation X_train,X_test,y_train,y_test = cross_validation.train_test_split(X,y,test_size=0.3)
źródło
Najnowsza stabilna wersja sklearn 0.20.0 ma train_test_split jest objęty modelem_selection, a nie cross_validation
Aby sprawdzić swoją wersję sklearn:
import sklearn print ( wersja sklearn) 0.20.2
źródło
Dodanie informacji do poprzedniej odpowiedzi od @linusg:
sklearn
przechowuje historię wszystkich zmian. Pomyśl o sprawdzeniu tego od czasu do czasu. Oto link do dokumentacji.Jak widać w dokumentacji do wersji 0.18 , utworzono nowy moduł o nazwie
model_selection
. Dlatego nie istniał w poprzednich wersjach.Zaktualizuj
sklearn
i zadziała!źródło
Twoja wersja sklearn jest za niska,
model_selection
została zaimportowana do 0.18.1, więc zaktualizuj wersję sklearn.źródło