2015-04-13 23 views
17

Próbuję użyć funkcji SVM z scikit nauczyć pakiet dla Pythona, ale pojawia się komunikat o błędzie:import check_arrays z sklearn

from sklearn.utils.validation import check_arrays 

ImportError: cannot import name 'check_arrays'

Używam Pythona 3.4. Czy ktoś może mi doradzić? Z góry dziękuję.

Odpowiedz

19

Ta metoda została usunięta w 0.16, zastąpiona przez (bardzo różne) funkcje check_array. Prawdopodobnie pojawia się ten błąd, ponieważ nie zaktualizowałeś poprawnie wersji od 0.15 do 0.16. [Albo dlatego, że polegałeś na niezupełnie publicznej funkcji w sklearn]. Zobacz http://scikit-learn.org/dev/install.html#canopy-and-anaconda-for-all-supported-platforms. Jeśli zainstalowałeś używając anaconda/conda, powinieneś użyć mechanizmu conda do aktualizacji, a nie pip. W przeciwnym razie stare pliki .pyc mogą pozostać w twoim folderze.

+0

Używałem wersji 0.16. Tak więc skutecznie musiałem zaktualizować poprawnie od 0,15 do 0,16. Polecenie conda install scikit-learn działało całkiem nieźle i rozwiązało mój problem! Wielkie dzięki;) – rado

+0

Wtedy powinieneś zaakceptować odpowiedź;) –

+0

dzięki za wzmiankę o plikach .pyc, zrobili różnicę w moim przypadku – Pafnucy

4

Dla mnie ...

To działało:

from sklearn.utils import check_array 

Również w tym:

from sklearn.utils.validation import check_array 

używam wersji 0.16.0

>>> sklearn.__version__

'0.16.0'

Wykonaj:

import sklearn 

print sklearn.__version__ 

Podaj nam wyniki.

+0

Czy to nadal działa? Wydaje mi się, że mam problem z najnowszą wersją i byłbym wdzięczny, gdybyś mógł rzucić okiem na to: https://stackoverflow.com/questions/45172561/scikit-learn-valueerror-not-enough-values-to-unpack -expected-2-got-1 –

8

Wygląda na to, że "check_arrays" nie istnieje (już). Naprawiłem go z:

sudo vi /usr/lib64/python2.7/site-packages/sklearn/metrics/cluster/bicluster/bicluster_metrics.py

zmiany to: od sklearn.utils.validation import check_arrays do: od sklearn.utils. validation import check_array jako check_arrays

Coś w stylu hack, ale działa dla mnie.