Kom igångKom igång gratis

Hantera outliers

I den här övningen ska du hantera outliers – datapunkter som skiljer sig så mycket från resten av datan att de behöver behandlas annorlunda än övriga "normala" datapunkter. Du använder resultatet från föregående övning (procentuell förändring över tid) för att identifiera outliers. Först skriver du en funktion som ersätter outliers med medianvärdet från hela tidsserien.

Den här övningen är en del av kursen

Maskininlärning för tidsseriedata i Python

Visa kurs

Övningsinstruktioner

  • Definiera en funktion som tar en serie som indata och gör följande:
    • Beräknar absolutvärdet av varje datapunkts avstånd från seriens medelvärde och skapar sedan en boolesk mask för datapunkter som ligger tre standardavvikelser från medelvärdet.
    • Använd den booleska masken för att ersätta outliers med medianvärdet för hela serien.
  • Applicera funktionen på dina data och visualisera resultaten med den givna koden.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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()
Redigera och kör kod