Obsługa wartości odstających
W tym ćwiczeniu zajmiesz się wartościami odstającymi – punktami danych tak różnymi od reszty, że wymagają odrębnego traktowania w porównaniu z „normalnymi" obserwacjami. Do ich wykrycia wykorzystasz wyniki z poprzedniego ćwiczenia (zmiana procentowa w czasie). Zaczniesz od napisania funkcji, która zastępuje wartości odstające medianą całego szeregu czasowego.
To ćwiczenie jest częścią kursu
Uczenie maszynowe dla danych szeregów czasowych w Pythonie
Instrukcje do ćwiczenia
- Zdefiniuj funkcję, która przyjmuje serię wejściową i wykonuje następujące operacje:
- Oblicza wartość bezwzględną odległości każdego punktu danych od średniej serii, a następnie tworzy maskę logiczną dla punktów oddalonych o więcej niż trzy odchylenia standardowe od średniej.
- Używa tej maski logicznej, aby zastąpić wartości odstające medianą całej serii.
- Zastosuj tę funkcję do swoich danych i zwizualizuj wyniki przy użyciu dostarczonego kodu.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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()