Обробка викидів
У цій вправі ви оброблятимете викиди — точки даних, які настільки відрізняються від решти, що їх слід розглядати інакше, ніж інші «нормальні» значення. Ви використаєте результат з попередньої вправи (відсоткову зміну в часі), щоб виявити викиди. Спочатку ви напишете функцію, яка замінює значення-викиди медіаною всієї часової серії.
Ця вправа є частиною курсу
Machine Learning для часових рядів у Python
Інструкції до вправи
- Визначте функцію, яка приймає вхідну серію і виконує таке:
- Обчислює абсолютне значення відстані кожної точки даних від середнього серії, а потім створює булеву маску для точок, що відхиляються від середнього більше ніж утричі на стандартне відхилення.
- Використайте цю булеву маску, щоб замінити викиди на медіану всієї серії.
- Застосуйте цю функцію до ваших даних і візуалізуйте результати за допомогою наведеного коду.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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()