CommencezCommencez gratuitement

Gérer les valeurs aberrantes

Dans cet exercice, vous allez traiter les valeurs aberrantes — des points de données si différents du reste de vos données qu'il faut les gérer autrement que les points qui ont l'air « normaux ». Vous utiliserez le résultat de l'exercice précédent (le pourcentage de variation dans le temps) pour détecter les valeurs aberrantes. Vous commencerez par écrire une fonction qui remplace les points aberrants par la valeur médiane de toute la série chronologique.

Cette activité fait partie du cours

Machine Learning pour les données chronologiques en Python

Voir le cours

Instructions de l’exercice

  • Définissez une fonction qui prend une série en entrée et qui fait ce qui suit :
    • Calcule la valeur absolue de la distance de chaque point de données par rapport à la moyenne de la série, puis crée un masque booléen pour les points situés à trois écarts types de la moyenne.
    • Utilisez ce masque booléen pour remplacer les valeurs aberrantes par la médiane de l'ensemble de la série.
  • Appliquez cette fonction à vos données et visualisez les résultats à l'aide du code fourni.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

def replace_outliers(series):
    # Calculate the absolute difference of each timepoint from the series mean
    absolute_differences_from_mean = np.abs(series - np.mean(series))
    
    # Calculate a mask for the differences that are > 3 standard deviations from zero
    this_mask = absolute_differences_from_mean > (np.____(series) * ____)
    
    # Replace these values with the median accross the data
    series[this_mask] = np.____(series)
    return series

# Apply your preprocessing function to the timeseries and plot the results
prices_perc = prices_perc.____
prices_perc.loc["2014":"2015"].plot()
plt.show()
Modifier et exécuter le code