Suppression statistique des valeurs aberrantes
Supprimer les N % plus élevés de vos données est utile pour éliminer des points très aberrants, mais l’inconvénient est que vous retirez toujours la même proportion de points, même si les données sont correctes. Une approche alternative couramment utilisée consiste à supprimer les données situées à plus de trois écarts types de la moyenne. Pour cela, calculez d’abord la moyenne et l’écart type de la colonne concernée afin de déterminer les bornes supérieure et inférieure, puis appliquez ces bornes comme masque au DataFrame. Cette méthode garantit que seules les données réellement différentes du reste sont supprimées et qu’elle retirera moins de points si les données sont resserrées.
Cet exercice fait partie du cours
Feature engineering pour le Machine Learning en Python
Instructions
- Calculez l’écart type et la moyenne de la colonne
ConvertedSalarydeso_numeric_df. - Calculez les bornes supérieure et inférieure à trois écarts types de la moyenne, dans les deux directions.
- Réduisez le DataFrame
so_numeric_dfpour conserver toutes les lignes oùConvertedSalaryse situe entre les bornesloweretupper.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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()