LoslegenKostenlos loslegen

Ausreißer behandeln

In dieser Übung behandelst du Ausreißer – Datenpunkte, die sich so stark vom Rest deiner Daten unterscheiden, dass du sie anders als andere „normal aussehende“ Datenpunkte behandeln solltest. Du verwendest die Ausgabe aus der vorherigen Übung (prozentuale Veränderung über die Zeit), um die Ausreißer zu erkennen. Zuerst schreibst du eine Funktion, die Ausreißer durch den Medianwert der gesamten Zeitreihe ersetzt.

Diese Übung ist Teil des Kurses

Maschinelles Lernen für Zeitreihendaten in Python

Kurs anzeigen

Anleitung zur Übung

  • Definiere eine Funktion, die eine Eingabeserie erhält und Folgendes tut:
    • Berechnet den absoluten Wert der Distanz jedes Datenpunkts vom Serienmittel und erstellt dann eine boolesche Maske für Datenpunkte, die das Dreifache der Standardabweichung vom Mittel entfernt sind.
    • Verwende diese boolesche Maske, um die Ausreißer durch den Median der gesamten Serie zu ersetzen.
  • Wende diese Funktion auf deine Daten an und visualisiere die Ergebnisse mit dem gegebenen Code.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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()
Code bearbeiten und ausführen