Sobes.tech
Middle — Senior
37

Какие методы детекции аномалий специфичны для временных рядов?

Сұралған компаниялар
МТСМТС
Северсталь

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

Этот код находит индексы точек, которые значительно отклоняются от локального среднего.