Używam Pythona 2.7 w Ubuntu 14.04. Zainstalowałem scikit-learn, numpy i matplotlib za pomocą tych poleceń:
sudo apt-get install build-essential python-dev python-numpy \
python-numpy-dev python-scipy libatlas-dev g++ python-matplotlib \
ipython
Ale kiedy importuję te pakiety:
from sklearn.cross_validation import train_test_split
Zwraca mi ten błąd:
ImportError: No module named sklearn.cross_validation
Co muszę zrobić?
python
scikit-learn
arthurckl
źródło
źródło
Odpowiedzi:
Musi odnosić się do zmiany nazwy i wycofania
cross_validation
podmodułu namodel_selection
. Spróbuj podstawićcross_validation
domodel_selection
źródło
train_test_split jest teraz w modelu_selection. Wystarczy wpisać:
powinno działać
źródło
Myślę, że selekcja krzyżowa nie jest już aktywna. Zamiast tego powinniśmy użyć wyboru modelu. Możesz to napisać do uruchomienia,
from sklearn.model_selection import train_test_split
Otóż to.
źródło
Upewnij się, że masz Anaconda zainstalowany, a następnie utworzyć virtualenv korzystając Conda . Zapewni to działanie całego importu
źródło
sklearn.cross_validation
jest teraz zmieniony nasklearn.model_selection
Po prostu użyj
Myślę, że to zadziała.
źródło
zmienił się na
Sprawdź dokumentację tutaj: https://scikit-learn.org/stable/modules/cross_validation.html
źródło
Być może jest to spowodowane wycofaniem sklearn.cross_validation. Zamień sklearn.cross_validation na sklearn.model_selection
Ref- https://github.com/amueller/scipy_2015_sklearn_tutorial/issues/60
źródło
Dzielenie zbioru danych na zbiór uczący i zbiór testowy
źródło
Wcześniej:
from sklearn.cross_validation
(Ten pakiet jest przestarzały w wersji 0.18 od 0.20 i później, jest zmieniany nafrom sklearn import model_selection
).Teraźniejszość:
from sklearn import model_selection
Przykład 2:
Wcześniej:
from sklearn.cross_validation import cross_val_score
(wersja 0.18, która jest przestarzała)Teraźniejszość :
from sklearn.model_selection import cross_val_score
źródło
sklearn.cross_validation
jest teraz zmieniony nasklearn.model_selection
Po prostu zmień
do
źródło
zmień kod w ten sposób
źródło
Jeśli masz kod, który musi uruchamiać różne wersje, możesz zrobić coś takiego:
Nie jest to jednak idealne, ponieważ porównujesz wersje pakietów jako ciągi znaków, co zwykle działa, ale nie zawsze. Jeśli chcesz zainstalować
packaging
, jest to znacznie lepsze podejście:źródło
cross_validation został wycofany jakiś czas temu, spróbuj go wyłączyć za pomocą model_selection
źródło
train_test_split
jest częścią modułusklearn.model_selection
, dlatego może być konieczne zaimportowanie modułu zmodel_selection
Kod:
źródło
Albo musimy obniżyć scikit-learn do najnowszej kompatybilnej wersji. Można to zrobić po aktywacji środowiska Conda. Użyj następujących poleceń, aby obniżyć wersję scikit-learn:
LUB
Kiedy nie chcemy obniżać wersji scikit-learn. Wtedy wszyscy wiedzieliśmy, że nazwa „cross_validation” jest przestarzała w nowszych wersjach scikit-learn i została zastąpiona przez „model_selection” w nowej wersji anakondy. Dlatego możemy otrzymać ostrzeżenie lub nawet błąd.
Aby tego uniknąć, wystarczy wymienić:
do
Mam nadzieję, że pomoże to rozwiązać problem.
źródło