Извлеките сотни соответствующих функций для вашего варианта использования временных рядов

Данные временных рядов многократно фиксируют значение переменной с течением времени, что приводит к ряду точек данных, индексированных во временном порядке. Во временных рядах данные имеют естественный временной порядок, т. е. значение переменной в определенное время зависит от прошлых значений.

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

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

цфреш:

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

Начиная:

Пакет tsfresh предлагает различные возможности для разработки функций данных временных рядов, включая:

  • Генерация функций
  • Выбор функции
  • Совместимость с большими данными

Установка и использование:

tsfresh — это пакет Python с открытым исходным кодом, который можно установить с помощью:

pip install -U tsfresh
# or
conda install -c conda-forge tsfresh

1) Генерация функций:

Пакет tsfresh предлагает API для автоматической генерации функций, который может генерировать более 750 соответствующих функций из одной переменной временного ряда. Сгенерированные функции включают в себя широкий спектр, включая:

  • Описательная статистика (среднее, максимальное, корреляция и т. д.)
  • Физические индикаторы нелинейности и сложности
  • Функции, связанные с цифровой обработкой сигналов
  • Сжатые функции истории

Использование:

Специалисту по данным не нужно тратить время на разработку функций. tsfresh.extract_features()функция сгенерировала 789 объектов из нескольких доменов для 1 переменной временного ряда.

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

2) Выбор функции:

Пакет tsfresh также предлагает реализацию выбора функций на основе проверки гипотез, которая определяет соответствующие функции для целевой переменной. Чтобы ограничить количество нерелевантных функций, tsfresh использует новый алгоритм (fresh означает извлечение признаков на основе тестов масштабируемой гипотезы).

tsfresh.select_features()функция пользователь может реализовать выбор функции.

3) Совместимость с большими данными:

Для условий, когда у нас есть куча очень больших данных нескольких временных рядов. tsfresh также предлагает API-интерфейсы для масштабирования генерации/извлечения функций и реализации выбора функций для большого объема данных:

  • Многопроцессорность: пакет tsfresh по умолчанию может распараллелить выполнение реализации создания/извлечения и выбора функций для нескольких ядер.
  • собственная распределенная структура tsfresh для масштабирования реализации для данных, которые помещаются на одном компьютере, и распределения расчета функций по нескольким компьютерам для ускорения расчета.
  • Apache spark или Dask для данных, которые не помещаются на одной машине.

Вот замечательные статьи Нильса Брауна, объясняющие реализацию tsfresh с помощью Dask (Статья часть 1, Статья часть 2).



Заключение:

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

Обычно данные временных рядов довольно велики, и пакет tsfresh тоже приходит на помощь. API-интерфейсы tsfresh можно применять к большим выборкам данных с помощью многопроцессорной обработки, dask или spark.

Использованная литература:

[1] Документация tsfresh: https://tsfresh.readthedocs.io/en/latest/

[2] Нильс Браун Статья GitHub: https://nils-braun.github.io/tsfresh-on-cluster-1/

Спасибо за чтение