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

Einen Kommentar hinzufügen

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