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