Jak naprawić: brak modułu o nazwie „sklearn.cross_validation”;


Błąd, który możesz napotkać podczas korzystania z Pythona, to:

 ModuleNotFoundError : No module named 'sklearn.cross_validation'

Ten błąd zwykle występuje podczas próby zaimportowania funkcji train_test_split ze sklearn przy użyciu następującego wiersza:

 from sklearn. cross_validation import train_test_split

Jednakże podmoduł cross_validation został zastąpiony podmodułem model_selection , dlatego należy użyć następującego wiersza:

 from sklearn. model_selection import train_test_split

Poniższy przykład pokazuje, jak w praktyce rozwiązać ten błąd.

Jak odtworzyć błąd

Załóżmy, że chcemy użyć funkcji train_test_split sklearn , aby podzielić ramkę DataFrame pandy na zestawy szkoleniowe i testowe.

Załóżmy, że próbujemy użyć poniższego kodu do zaimportowania funkcji train_test_split :

 from sklearn. cross_validation import train_test_split

ModuleNotFoundError : No module named 'sklearn.cross_validation'

Otrzymujemy błąd, ponieważ podczas próby zaimportowania funkcji train_test_split użyliśmy nieprawidłowej nazwy podmodułu.

Jak naprawić błąd

Aby naprawić ten błąd, wystarczy użyć podmodułu model_selection :

 from sklearn. model_selection import train_test_split

Tym razem nie otrzymaliśmy żadnych błędów.

Moglibyśmy następnie użyć funkcji train_test_split , aby podzielić ramkę danych pandy na zestaw szkoleniowy i testowy:

 from sklearn. model_selection import train_test_split
import pandas as pd
import numpy as np

#make this example reproducible
n.p. random . seeds (1)

#create DataFrame with 1000 rows and 3 columns
df = pd. DataFrame ({' x1 ': np.random.randint(30, size=1000),
                   ' x2 ': np.random.randint(12, size=1000),
                   ' y ': np.random.randint(2, size=1000)})

#split original DataFrame into training and testing sets
train, test = train_test_split(df, test_size=0.2, random_state=0)

#view first few rows of each set
print ( train.head ())

     x1 x2 y
687 16 2 0
500 18 2 1
332 4 10 1
979 2 8 1
817 11 1 0

print ( test.head ())

     x1 x2 y
993 22 1 1
859 27 6 0
298 27 8 1
553 20 6 0
672 9 2 1

Funkcję train_test_split udaje nam się pomyślnie wykorzystać bez żadnych błędów.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak naprawić inne typowe błędy w Pythonie:

Jak naprawić: Kolumny nakładają się, ale nie określono żadnego sufiksu
Jak naprawić: Obiekt „numpy.ndarray” nie ma atrybutu „dołącz”.
Jak naprawić: jeśli używasz wszystkich wartości skalarnych, musisz przekazać indeks
Jak naprawić: ValueError: Nie można przekonwertować float NaN na int

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *