Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Beräkna standardavvikelsen och medelvärdet för kolumnen ConvertedSalary i so_numeric_df.
  • Beräkna den övre och nedre gränsen som tre standardavvikelser från medelvärdet i båda riktningarna.
  • Filtrera so_numeric_df så att bara de rader behålls där ConvertedSalary ligger inom lower- och upper-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()
Redigera och kör kod