Kats - Фреймворк для Анализ временных рядов
Цель Kats - предоставить универсальное решение для анализа временных рядов, от понимания ключевых статистических данных и обнаружения аномалий до прогнозирования тенденций, извлечения/встраивания признаков, многомерного анализа и т.д.
Анализ временных рядов - это фундаментальная область в науке о данных и машинном обучении, имеющая широкое применение в различных отраслях, таких как электронная коммерция, финансы, планирование мощностей, управление цепочками поставок, медицина, погода, энергетика, астрономия и многие другие.
Анализ временных рядов
Анализ временных рядов как статистическая техника используется для изучения и моделирования данных, зависящих от времени. Некоторые общие особенности инструментов анализа временных рядов включают:
- Разложение временного ряда: возможность разложить временной ряд на его составные части, такие как тренд, сезонность и остатки.
- Прогнозирование: возможность предсказать будущие значения временного ряда на основе прошлых данных
- Определение аномалий: способность идентифицировать необычное или неожиданное поведение временного ряда
- Многомерный анализ: способность анализировать несколько временных рядов одновременно, принимая во внимание взаимосвязи между ними
- Извлечение/вставка признаков: способность извлекать значимые признаки из данных временного ряда или представлять данные временного ряда в более низкоразмерном пространстве для дальнейшего анализа.
Это лишь несколько примеров типов функциональности, которые могут быть включены в инструмент анализа временных рядов. Давайте посмотрим, что может предоставить нам Kats.
Kats - универсальный инструмент
Kats - это легкая, простая в использовании и обобщаемая структура для общего анализа временных рядов, включая прогнозирование, обнаружение аномалий, многомерный анализ и извлечение/встраивание признаков.
Kats - это первая комплексная библиотека Python для общего анализа временных рядов, которая предоставляет как классические, так и продвинутые методы моделирования данных временных рядов.
Kats связывает различные области анализа временных рядов, где пользователи могут изучать основные характеристики данных временных рядов, прогнозировать будущие значения, отслеживать аномалии и включать их в свои модели и конвейеры ML.
Что он делает
Kats предоставляет набор алгоритмов и моделей для четырех областей анализа временных рядов: прогнозирование, обнаружение, извлечение и встраивание признаков и многомерный анализ.
Прогнозирование: Kats предоставляет полный набор инструментов для прогнозирования, который включает 10+ индивидуальных моделей прогнозирования, ансамблирование, модель самообучения (мета-обучения), бэктестинг, настройку гиперпараметров и эмпирические интервалы прогнозирования.
Обнаружение: Kats поддерживает функциональные возможности для обнаружения различных закономерностей в данных временных рядов, включая сезонность, выбросы, точки изменения и медленные изменения тренда.
Извлечение и встраивание признаков: Модуль извлечения признаков временных рядов (TSFeature) в Kats может создавать 65 признаков с четкими статистическими определениями, которые могут быть включены в большинство моделей машинного обучения (ML), таких как классификация и регрессия.
Полезные утилиты: Kats также предоставляет набор полезных утилит, таких как симуляторы временных рядов.
Установка на Python
Kats находится на PyPI, поэтому Вы можете использовать pip
для его установки.
|
|
Пример прогнозирования
Использование модели Prophet
для прогнозирования набора данных air_passengers
.
|
|
Примеры умозаключений
С помощью Kats можно получить следующие выводы:
- Обнаружение аномалий: Обнаруживает аномальное увеличение или уменьшение во временном ряду.
- Определение точки изменения: Обнаруживает внезапные изменения во временном ряду. Для этого процесса в Kats существует 3 различных алгоритма:
- Обнаружение CUSUM
- Байесовское онлайн обнаружение точек изменения (BOCPD)
- Обнаружение Stat Sig
- Определение изменений тренда: Он обнаруживает изменения тренда временного ряда, используя алгоритм обнаружения Манна-Кендалла.
Обнаружение выбросов
Для обнаружения выбросов требуется минимум 24 строки данных.
|
|
Выбросы, обнаруженные с помощью Kats, также могут быть очищены с помощью Kats. Для этого Kats предлагает 2 метода:
- Нет интерполяции: Заполняет промахи значением NaN без применения операции интерполяции.
- С интерполяцией: Заполняет пропуски, применяя линейную интерполяцию.
Обнаружение точек изменения
С помощью Kats можно обнаружить точки изменения во временном ряду. В Kats есть 3 различных алгоритма для этого процесса:
- CUSUMDetector
- BOCPDetector
- RobustStatDetector
Использование алгоритма обнаружения CUSUM
на смоделированном наборе данных.
|
|
Обнаружение изменения тренда
С помощью Kats также можно определить направление тренда серии. Для этого Kats использует алгоритм MKDetector. В основе этого алгоритма лежит тест Манна-Кендалла, который является непараметрическим тестом.
|
|
Полезные ссылки
- Homepage: https://facebookresearch.github.io/Kats/
- Kats Python package: https://pypi.org/project/kats/0.1.0/
- Facebook Engineering: https://engineering.fb.com/2021/06/21/open-source/kats/
- Source code repository: https://github.com/facebookresearch/kats
- Contributing: https://github.com/facebookresearch/Kats/blob/master/CONTRIBUTING.md
- Tutorials: https://github.com/facebookresearch/Kats/tree/master/tutorials
Заключение
Kats - это инструмент для анализа временных рядов, который использует метод “metalearning” для определения наиболее подходящей модели и соответствующих параметров для данного временного ряда. Он делает это, используя метаданные, полученные с помощью TSFeatures, и применяя алгоритм Random Forest для определения наилучшей модели на основе этих метаданных. Эта функция Kats позволяет пользователям создать свой собственный инструмент автоматического машинного обучения (autoML).