Borttagning av statistiska avvikare
Att ta bort de översta N% av dina data är ett bra sätt att filtrera bort extremt avvikande punkter, men metoden har en nackdel: den tar alltid bort samma andel datapunkter, även om data är korrekt. Ett vanligt alternativ är att ta bort datapunkter som ligger mer än tre standardavvikelser från medelvärdet. Det gör du genom att först beräkna medelvärde och standardavvikelse för den aktuella kolumnen för att fastställa övre och nedre gränser, och sedan använda dessa gränser som en mask mot DataFrame:n. Den här metoden säkerställer att endast genuint avvikande data tas bort, och filtrerar bort färre punkter om data ligger nära varandra.
Den här övningen är en del av kursen
Särdragshantering för maskininlärning i Python
Övningsinstruktioner
- Beräkna standardavvikelsen och medelvärdet för kolumnen
ConvertedSalaryiso_numeric_df. - Beräkna den övre och nedre gränsen som tre standardavvikelser från medelvärdet i båda riktningarna.
- Filtrera
so_numeric_dfså att bara de rader behålls därConvertedSalaryligger inomlower- ochupper-gränserna.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()