CommencerCommencer 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 que vous les gérez autrement que les points « normaux ». Vous utiliserez le résultat de l’exercice précédent (variation en pourcentage dans le temps) pour détecter ces valeurs aberrantes. Vous commencerez par écrire une fonction qui remplace les points aberrants par la médiane de l’ensemble de la série temporelle.

Cet exercice fait partie du cours

Machine Learning for Time Series Data in Python

Afficher le cours

Instructions

  • Définissez une fonction qui prend en entrée une série et réalise les opérations suivantes :
    • Calcule la valeur absolue de la distance de chaque point à la moyenne de la série, puis crée un masque booléen pour les points situés à trois fois l’écart type 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 cet exemple de code.

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