Aan de slagBegin gratis

Uitschieters verwerken

In deze oefening ga je uitschieters verwerken: datapunten die zo anders zijn dan de rest van je data, dat je ze anders behandelt dan andere, “normaal ogende” datapunten. Je gebruikt de uitvoer van de vorige oefening (percentuele verandering over tijd) om de uitschieters te detecteren. Eerst schrijf je een functie die uitschieter-datapunten vervangt door de mediaanwaarde van de volledige tijdreeks.

Deze oefening maakt deel uit van de cursus

Machine Learning voor tijdreeksgegevens in Python

Bekijk cursus

Oefeninstructies

  • Definieer een functie die een inputserie aanneemt en het volgende doet:
    • Berekent de absolute waarde van de afstand van elk datapunt tot het seriegemiddelde, en maakt vervolgens een booleaanse mask voor datapunten die drie keer de standaardafwijking van het gemiddelde afliggen.
    • Gebruik dit booleaanse mask om de uitschieters te vervangen door de mediaan van de volledige serie.
  • Pas deze functie toe op je data en visualiseer de resultaten met de gegeven code.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

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 bewerken en uitvoeren