Middle — Senior
33
Какие методы детекции аномалий специфичны для временных рядов?
Companies where asked
Северсталь
Answer from AI
sobes.tech AI
Для детекции аномалий во временных рядах используются методы, учитывающие временную зависимость и сезонность данных. Основные специфичные подходы:
- Модели на основе скользящего окна: анализируют отклонения текущих значений от среднего или медианы в окне времени.
- Методы на основе сезонно-трендовой декомпозиции (STL, STL decomposition): выделяют тренд и сезонность, аномалии определяются как резкие отклонения от этих компонентов.
- ARIMA и SARIMA модели: прогнозируют значения, а аномалиями считаются значительные отклонения от прогноза.
- Методы на основе рекуррентных нейронных сетей (LSTM, GRU): обучаются предсказывать следующий шаг, аномалии — большие ошибки предсказания.
- Matrix Profile: вычисляет схожесть подпоследовательностей временного ряда, выявляя необычные паттерны.
Пример простого подхода с использованием скользящего среднего:
import numpy as np
def detect_anomalies(series, window=5, threshold=3):
rolling_mean = np.convolve(series, np.ones(window)/window, mode='valid')
anomalies = []
for i in range(window - 1, len(series)):
if abs(series[i] - rolling_mean[i - window + 1]) > threshold * np.std(series):
anomalies.append(i)
return anomalies
Этот код находит индексы точек, которые значительно отклоняются от локального среднего.