Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Herausforderung: Fehlende Werte Imputieren | Datenvorverarbeitung mit Scikit-Learn
ML-Einführung Mit Scikit-Learn

bookHerausforderung: Fehlende Werte Imputieren

Die Klasse SimpleImputer ist dafür konzipiert, fehlende Daten zu behandeln, indem sie fehlende Werte automatisch ersetzt.

from sklearn.impute import SimpleImputer
imputer = SimpleImputer()

Bei der Initialisierung kann sie auch durch Setzen ihrer Parameter angepasst werden:

  • missing_value: Gibt den Platzhalter für fehlende Werte an. Standardmäßig ist dies np.nan;
  • strategy: Die Strategie, die zum Ersetzen fehlender Werte verwendet wird. 'mean' ist der Standardwert;
  • fill_value: Gibt den Wert an, der zum Auffüllen fehlender Werte verwendet wird, wenn die strategy 'constant' ist. Standardmäßig ist dies None.

Als Transformer verfügt sie über die folgenden Methoden:

Es ist außerdem notwendig zu entscheiden, welche Werte für die Imputation verwendet werden sollen.

Ein gängiger Ansatz ist das Ersetzen fehlender numerischer Werte durch den Mittelwert und fehlender kategorialer Werte durch den Modus (häufigster Wert), da dies die Datenverteilung nur minimal verzerrt.

Die Auswahl wird durch den Parameter strategy gesteuert:

  • strategy='mean': Imputation mit dem Mittelwert jeder Spalte;
  • strategy='median': Imputation mit dem Median jeder Spalte;
  • strategy='most_frequent': Imputation mit dem Modus jeder Spalte;
  • strategy='constant': Imputation mit einem konstanten Wert, der im Parameter fill_value angegeben wird.

Der Parameter missing_values definiert, welche Werte als fehlend behandelt werden. Standardmäßig ist dies NaN, aber in einigen Datensätzen kann es sich um einen leeren String '' oder einen anderen Platzhalter handeln.

Note
Hinweis

Der SimpleImputer und viele andere Transformer funktionieren nur mit DataFrames, nicht mit pandas Series. Die Auswahl einer einzelnen Spalte aus einem DataFrame mit df['column'] gibt eine Series zurück. Um dies zu vermeiden, können Sie doppelte Klammern df[['column']] verwenden, um sicherzustellen, dass ein DataFrame zurückgegeben wird:

imputer.fit_transform(df[['column']])

Wenn die Methode .fit_transform() von SimpleImputer angewendet wird, gibt sie ein 2D-Array zurück. Das Zuweisen von Werten zu einer einzelnen Spalte in einem pandas DataFrame erfordert jedoch ein 1D-Array (oder eine Series).

df['column'] = ...  # Requires 1D array or Series
imputer.fit_transform(df[['column']])  # Produces 2D array

Die Methode .ravel() kann verwendet werden, um das Array vor der Zuweisung in 1D zu konvertieren:

df['column'] = imputer.fit_transform(df[['column']]).ravel()

Dies stellt sicher, dass die imputierten Werte korrekt formatiert und in der DataFrame-Spalte gespeichert werden.

Aufgabe

Swipe to start coding

Imputieren der fehlenden Werte in der Spalte 'sex' mit SimpleImputer. Da es sich um eine kategoriale Spalte handelt, sollen NaN-Werte durch den häufigsten Wert ersetzt werden.

  1. Import des SimpleImputer.
  2. Erstellen eines SimpleImputer-Objekts mit der gewünschten strategy.
  3. Imputieren der fehlenden Werte in der Spalte 'sex' mit dem imputer-Objekt.

Lösung

Sehr gut! Wir haben das Problem der fehlenden Werte in unserem Datensatz gelöst. Wir haben die Zeilen mit mehr als einem Nullwert entfernt und die Spalte 'sex' mit dem häufigsten Wert – MALE – imputiert.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 4
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

close

Awesome!

Completion rate improved to 3.13

bookHerausforderung: Fehlende Werte Imputieren

Swipe um das Menü anzuzeigen

Die Klasse SimpleImputer ist dafür konzipiert, fehlende Daten zu behandeln, indem sie fehlende Werte automatisch ersetzt.

from sklearn.impute import SimpleImputer
imputer = SimpleImputer()

Bei der Initialisierung kann sie auch durch Setzen ihrer Parameter angepasst werden:

  • missing_value: Gibt den Platzhalter für fehlende Werte an. Standardmäßig ist dies np.nan;
  • strategy: Die Strategie, die zum Ersetzen fehlender Werte verwendet wird. 'mean' ist der Standardwert;
  • fill_value: Gibt den Wert an, der zum Auffüllen fehlender Werte verwendet wird, wenn die strategy 'constant' ist. Standardmäßig ist dies None.

Als Transformer verfügt sie über die folgenden Methoden:

Es ist außerdem notwendig zu entscheiden, welche Werte für die Imputation verwendet werden sollen.

Ein gängiger Ansatz ist das Ersetzen fehlender numerischer Werte durch den Mittelwert und fehlender kategorialer Werte durch den Modus (häufigster Wert), da dies die Datenverteilung nur minimal verzerrt.

Die Auswahl wird durch den Parameter strategy gesteuert:

  • strategy='mean': Imputation mit dem Mittelwert jeder Spalte;
  • strategy='median': Imputation mit dem Median jeder Spalte;
  • strategy='most_frequent': Imputation mit dem Modus jeder Spalte;
  • strategy='constant': Imputation mit einem konstanten Wert, der im Parameter fill_value angegeben wird.

Der Parameter missing_values definiert, welche Werte als fehlend behandelt werden. Standardmäßig ist dies NaN, aber in einigen Datensätzen kann es sich um einen leeren String '' oder einen anderen Platzhalter handeln.

Note
Hinweis

Der SimpleImputer und viele andere Transformer funktionieren nur mit DataFrames, nicht mit pandas Series. Die Auswahl einer einzelnen Spalte aus einem DataFrame mit df['column'] gibt eine Series zurück. Um dies zu vermeiden, können Sie doppelte Klammern df[['column']] verwenden, um sicherzustellen, dass ein DataFrame zurückgegeben wird:

imputer.fit_transform(df[['column']])

Wenn die Methode .fit_transform() von SimpleImputer angewendet wird, gibt sie ein 2D-Array zurück. Das Zuweisen von Werten zu einer einzelnen Spalte in einem pandas DataFrame erfordert jedoch ein 1D-Array (oder eine Series).

df['column'] = ...  # Requires 1D array or Series
imputer.fit_transform(df[['column']])  # Produces 2D array

Die Methode .ravel() kann verwendet werden, um das Array vor der Zuweisung in 1D zu konvertieren:

df['column'] = imputer.fit_transform(df[['column']]).ravel()

Dies stellt sicher, dass die imputierten Werte korrekt formatiert und in der DataFrame-Spalte gespeichert werden.

Aufgabe

Swipe to start coding

Imputieren der fehlenden Werte in der Spalte 'sex' mit SimpleImputer. Da es sich um eine kategoriale Spalte handelt, sollen NaN-Werte durch den häufigsten Wert ersetzt werden.

  1. Import des SimpleImputer.
  2. Erstellen eines SimpleImputer-Objekts mit der gewünschten strategy.
  3. Imputieren der fehlenden Werte in der Spalte 'sex' mit dem imputer-Objekt.

Lösung

Sehr gut! Wir haben das Problem der fehlenden Werte in unserem Datensatz gelöst. Wir haben die Zeilen mit mehr als einem Nullwert entfernt und die Spalte 'sex' mit dem häufigsten Wert – MALE – imputiert.

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

close

Awesome!

Completion rate improved to 3.13
Abschnitt 2. Kapitel 4
single

single

some-alt