Usuwanie wartości odstających metodą statystyczną
Usuwanie górnych N% danych jest przydatne, gdy chcemy pozbyć się wyraźnie błędnych punktów, ale ma jedną wadę: zawsze eliminuje tę samą proporcję danych, nawet jeśli są one prawidłowe. Popularną alternatywą jest usuwanie obserwacji oddalonych o więcej niż trzy odchylenia standardowe od średniej. Aby to zrealizować, oblicz średnią i odchylenie standardowe odpowiedniej kolumny, wyznacz górną i dolną granicę, a następnie zastosuj je jako maskę dla ramki danych. Ta metoda usuwa tylko dane naprawdę różniące się od reszty – jeśli dane są skupione blisko siebie, usuniętych punktów będzie mniej.
To ćwiczenie jest częścią kursu
Inżynieria cech w uczeniu maszynowym w Pythonie
Instrukcje do ćwiczenia
- Oblicz odchylenie standardowe i średnią kolumny
ConvertedSalaryz ramki danychso_numeric_df. - Wyznacz górną i dolną granicę jako wartości oddalone o trzy odchylenia standardowe od średniej w obu kierunkach.
- Ogranicz ramkę danych
so_numeric_dfdo wierszy, w których wartośćConvertedSalarymieści się międzyloweraupper.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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()