Содержание

Фреймворк для Анализа Временных Рядов

Простой в использовании и универсальный фреймворк для анализа временных рядов

Kats Logo

Анализ временных рядов

Анализ временных рядов - фундаментальная область науки о данных и машинного обучения, имеющая широкое применение в различных отраслях, таких как электронная коммерция, финансы, планирование мощностей, управление цепочками поставок, медицина, погода, энергетика, астрономия и многие другие.

Kats - универсальное решение

Kats - это легкий, простой в использовании и универсальный фреймворк для общего анализа временных рядов, включая прогнозирование, обнаружение аномалий, многомерный анализ и извлечение / встраивание признаков.

Kats - это первая комплексная библиотека Python для общего анализа временных рядов, которая предоставляет как классические, так и продвинутые методы моделирования данных в формате временных рядов.

Kats объединяет различные области анализа временных рядов, где пользователи могут изучать основные характеристики данных в формате временных рядов, прогнозировать будущие значения, отслеживать аномалии и включать их в свои модели и конвейеры ML.

Что он делает

Kats предоставляет набор алгоритмов и моделей для четырех областей анализа временных рядов: прогнозирование, обнаружение, извлечение и встраивание признаков и многомерный анализ.

  • Прогнозирование: Kats предоставляет полный набор инструментов для прогнозирования, включающий более 10 индивидуальных моделей прогнозирования, ансамбль, модель самообучения (мета-обучения), бэктестинг, настройку гиперпараметров и эмпирические интервалы прогнозирования.

  • Обнаружение: Kats поддерживает функции для обнаружения различных закономерностей в данных временных рядов, включая сезонность, выбросы, точки изменения и медленные изменения тренда.

  • Извлечение и встраивание признаков: Модуль извлечения признаков временных рядов (TSFeature) в Kats позволяет получить 65 признаков с четкими статистическими определениями, которые могут быть включены в большинство моделей машинного обучения (ML), таких как классификация и регрессия.

  • Полезные утилиты: Kats также предоставляет набор полезных утилит, таких как симуляторы временных рядов.

Установка для Python

Kats находится на PyPI, поэтому вы можете использовать pip для его установки.

1
2
pip install --upgrade pip
pip install kats

Пример прогнозирования

Использование модели Prophet для прогнозирования набора данных air_passengers.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
from kats.consts import TimeSeriesData
from kats.models.prophet import ProphetModel, ProphetParams

# в качестве примера берем данные `air_passengers`
air_passengers_df = pd.read_csv("../kats/data/air_passengers.csv")

# преобразуем их в объект TimeSeriesData
air_passengers_ts = TimeSeriesData(air_passengers_df)

# создаем экземпляр параметров модели
# обратите внимание, что аддитивный режим дает худшие результаты
params = ProphetParams(seasonality_mode='multiplicative')

# создаем экземпляр модели прогнозирования
m = ProphetModel(air_passengers_ts, params)

# используем модель, просто вызывая m.fit().
m.fit()

# делаем прогноз на следующие 30 месяцев
fcst = m.predict(steps=30, freq="MS")

Пример обнаружения

Использование алгоритма обнаружения CUSUM на смоделированном наборе данных.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
from kats.consts import TimeSeriesData
from kats.detectors.cusum_detection import CUSUMDetector

# моделирование временного ряда с ростом
np.random.seed(10)
df_increase = pd.DataFrame(
    {
        'time': pd.date_range('2019-01-01', '2019-03-01'),
        'increase':np.concatenate([np.random.normal(1,0.2,30), np.random.normal(2,0.2,30)]),
    }
)

# конвертируем в объект TimeSeriesData
timeseries = TimeSeriesData(df_increase)

# запускаем детектор и находим точки перемен
change_points = CUSUMDetector(timeseries).detector()

Ссылки