Rimozione statistica degli outlier
Sebbene rimuovere la percentuale superiore N% dei tuoi dati sia utile per assicurarsi di eliminare punti molto spurii, ha lo svantaggio di togliere sempre la stessa proporzione di punti, anche quando i dati sono corretti. Un approccio alternativo molto usato è rimuovere i dati che si trovano a più di tre deviazioni standard dalla media. Puoi implementarlo calcolando prima la media e la deviazione standard della colonna rilevante per trovare i limiti superiore e inferiore, e applicando questi limiti come maschera al DataFrame. Questo metodo garantisce che vengano rimossi solo i dati davvero diversi dal resto e rimuoverà meno punti se i dati sono più concentrati.
Questo esercizio fa parte del corso
Feature Engineering per il Machine Learning in Python
Istruzioni dell'esercizio
- Calcola la deviazione standard e la media della colonna
ConvertedSalarydiso_numeric_df. - Calcola i limiti superiore e inferiore come tre deviazioni standard dalla media in entrambe le direzioni.
- Riduci il DataFrame
so_numeric_dfper mantenere tutte le righe in cuiConvertedSalaryrientra tra i limitilowereupper.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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()