Statistische verwijdering van uitschieters
Het verwijderen van de bovenste N% van je data is handig om ervoor te zorgen dat zeer verdachte punten worden verwijderd, maar het nadeel is dat je altijd hetzelfde deel van de punten verwijdert, ook als de data correct is. Een veelgebruikte alternatieve aanpak is het verwijderen van data die verder dan drie standaarddeviaties van het gemiddelde ligt. Je kunt dit implementeren door eerst het gemiddelde en de standaarddeviatie van de relevante kolom te berekenen om de boven- en ondergrenzen te vinden, en deze grenzen als masker toe te passen op de DataFrame. Deze methode zorgt ervoor dat alleen data die echt afwijkt van de rest wordt verwijderd, en verwijdert minder punten als de data dicht bij elkaar ligt.
Deze oefening maakt deel uit van de cursus
Feature engineering voor Machine Learning in Python
Oefeninstructies
- Bereken de standaarddeviatie en het gemiddelde van de kolom
ConvertedSalaryvanso_numeric_df. - Bereken de boven- en ondergrenzen als drie standaarddeviaties vanaf het gemiddelde in beide richtingen.
- Snoei de DataFrame
so_numeric_dfzodat alle rijen behouden blijven waarConvertedSalarybinnen de grenzenlowerenuppervalt.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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()