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
Ö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()