Statistisches Entfernen von Ausreißern
Das Entfernen der obersten N % deiner Daten ist zwar hilfreich, um sehr ungewöhnliche Punkte loszuwerden, hat aber den Nachteil, dass immer der gleiche Anteil an Punkten entfernt wird – selbst wenn die Daten korrekt sind. Eine häufig genutzte Alternative ist, Daten zu entfernen, die mehr als drei Standardabweichungen vom Mittelwert entfernt liegen. Das kannst du umsetzen, indem du zunächst Mittelwert und Standardabweichung der relevanten Spalte berechnest, daraus die oberen und unteren Grenzen bestimmst und diese Grenzen als Maske auf den DataFrame anwendest. Diese Methode stellt sicher, dass nur wirklich vom Rest abweichende Daten entfernt werden und entfernt weniger Punkte, wenn die Daten eng beieinander liegen.
Diese Übung ist Teil des Kurses
Feature Engineering für Machine Learning in Python
Anleitung zur Übung
- Berechne die Standardabweichung und den Mittelwert der Spalte
ConvertedSalaryvonso_numeric_df. - Berechne die oberen und unteren Grenzen als drei Standardabweichungen Abstand vom Mittelwert in beide Richtungen.
- Kürze den DataFrame
so_numeric_df, sodass alle Zeilen erhalten bleiben, in denenConvertedSalaryinnerhalb der Grenzenlowerundupperliegt.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Find the mean and standard dev
std = so_numeric_df['ConvertedSalary'].____
mean = so_numeric_df['ConvertedSalary'].____
# Calculate the cutoff
cut_off = std * 3
lower, upper = mean - cut_off, ____
# Trim the outliers
trimmed_df = so_numeric_df[(so_numeric_df['ConvertedSalary'] < ____) \
& (so_numeric_df['ConvertedSalary'] > ____)]
# The trimmed box plot
trimmed_df[['ConvertedSalary']].boxplot()
plt.show()