Problemlösung: kein modul mit dem namen „sklearn.cross_validation“;
Ein Fehler, der bei der Verwendung von Python auftreten kann, ist:
ModuleNotFoundError : No module named 'sklearn.cross_validation'
Dieser Fehler tritt normalerweise auf, wenn versucht wird, die Funktion train_test_split aus sklearn mithilfe der folgenden Zeile zu importieren:
from sklearn. cross_validation import train_test_split
Allerdings wurde das Untermodul „cross_validation“ durch das Untermodul „model_selection“ ersetzt, sodass Sie die folgende Zeile verwenden müssen:
from sklearn. model_selection import train_test_split
Das folgende Beispiel zeigt, wie dieser Fehler in der Praxis behoben werden kann.
So reproduzieren Sie den Fehler
Nehmen wir an, wir möchten die train_test_split- Funktion von sklearn verwenden, um einen Pandas-DataFrame in Trainings- und Testsätze aufzuteilen.
Angenommen, wir versuchen, den folgenden Code zu verwenden, um die Funktion train_test_split zu importieren:
from sklearn. cross_validation import train_test_split ModuleNotFoundError : No module named 'sklearn.cross_validation'
Wir erhalten eine Fehlermeldung, weil wir beim Versuch, die Funktion train_test_split zu importieren, den falschen Submodulnamen verwendet haben.
So beheben Sie den Fehler
Um diesen Fehler zu beheben, müssen wir stattdessen einfach das Submodul model_selection verwenden:
from sklearn. model_selection import train_test_split
Diesmal erhalten wir keine Fehlermeldungen.
Wir könnten dann die Funktion train_test_split verwenden, um einen Pandas-DataFrame in einen Trainings- und Testsatz aufzuteilen:
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
Es gelingt uns, die Funktion train_test_split erfolgreich und fehlerfrei zu nutzen.
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in Python beheben:
Lösung: Spalten überschneiden sich, es ist jedoch kein Suffix angegeben
Problembehebung: Das Objekt „numpy.ndarray“ verfügt nicht über das Attribut „append“.
Lösung: Wenn Sie alle Skalarwerte verwenden, müssen Sie einen Index übergeben
So beheben Sie: ValueError: Float NaN kann nicht in int konvertiert werden