Oplossing: geen module met de naam "sklearn.cross_validation";


Een fout die u kunt tegenkomen bij het gebruik van Python is:

 ModuleNotFoundError : No module named 'sklearn.cross_validation'

Deze fout treedt meestal op wanneer u probeert de train_test_split- functie van sklearn te importeren met behulp van de volgende regel:

 from sklearn. cross_validation import train_test_split

De submodule cross_validation is echter vervangen door de submodule model_selection , dus u moet de volgende regel gebruiken:

 from sklearn. model_selection import train_test_split

Het volgende voorbeeld laat zien hoe u deze fout in de praktijk kunt oplossen.

Hoe de fout te reproduceren

Laten we zeggen dat we de train_test_split- functie van sklearn willen gebruiken om een Panda’s DataFrame op te splitsen in trainings- en testsets.

Stel dat we de volgende code proberen te gebruiken om de train_test_split- functie te importeren:

 from sklearn. cross_validation import train_test_split

ModuleNotFoundError : No module named 'sklearn.cross_validation'

We ontvangen een foutmelding omdat we de verkeerde submodulenaam hebben gebruikt bij het importeren van de train_test_split- functie.

Hoe u de fout kunt oplossen

Om deze fout op te lossen, hoeven we alleen maar de model_selection submodule te gebruiken:

 from sklearn. model_selection import train_test_split

Deze keer ontvangen we geen fouten.

We kunnen dan de functie train_test_split gebruiken om een Panda’s DataFrame op te splitsen in een trainings- en testset:

 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

We slagen erin om de train_test_split- functie met succes zonder fouten te gebruiken.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende fouten in Python kunt oplossen:

Oplossing: Kolommen overlappen elkaar, maar er is geen achtervoegsel opgegeven
Oplossing: Object ’numpy.ndarray‘ heeft geen ‚append‘-attribuut
Oplossing: als u alle scalaire waarden gebruikt, moet u een index doorgeven
Oplossing: ValueError: Kan float NaN niet naar int converteren

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert