НачатьНачать бесплатно

Обработка выбросов

В этом упражнении вы научитесь обрабатывать выбросы — точки данных, которые настолько отличаются от остальных, что требуют особого подхода по сравнению с «обычными» значениями. Для их обнаружения вы используете результат предыдущего упражнения — процентное изменение во времени. Сначала вы напишете функцию, которая заменяет выбросы медианным значением всего временного ряда.

Это упражнение является частью курса

Машинное обучение для данных временных рядов на 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()
Редактировать и запускать код