Перейти к содержанию

Прогнозирование

Команда predict используется для предсказания временного ряда. В основе прогноза - линейная регрессия, обученная на признаках, извлекаемых из временного ряда. Алгоритм может работать в двух режимах — с линейным и ломаным трендами.

В режиме линейного тренда, алгоритм:

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

В режиме ломаного тренда, алгоритм:

  • Определяет точки перелома тренда.
  • Определяет с учетом точек перелома.
  • Удаляет тренд (аддитивно или мультипликативно).
  • Генерирует признаки на основе временного ряда (день недели, месяц и т.д.)
  • Обучает линейную регрессию на созданных признаках.
  • Строит предсказания на основе выделенных закономерностей.
  • Восстанавливает тренд временного ряда.

Синтаксис команды

apply predict [modelType=<additive|multiplicative>] 
              [mode=<single-trend|multi-trend>] 
              [timeColumn=<timeColumn>] 
              [period=<period>] 
              [future=<future>]
<targetname> 

Параметры

Обязательные параметры:

  • targetname — имя поля, которое требуется спрогнозировать.

Опциональные параметры:

  • modelType — тип модели. Возможные значения:
    • additive — аддитивная. Значение по умолчанию
    • multiplicative — мультипликативная
  • mode — режим работы. Возможные значения
    • single-trend — для временных рядов с константным трендом. Значение по умолчанию.
    • multi-trend — для временных рядов с ломаным трендом. Точки перелома тренда определяются автоматически.
  • timeColumn — название поля, содержащего метки времени. Значение по умолчанию - "_time"
  • period — временной промежуток между наблюдениями. Значение по умолчанию - "1d" (один день).
  • future — количество периодов, которые необходимо предсказать. Значение по умолчанию - 100

Пример использования

На демонстрационных данных, содержащих давления, создаваемые на нагнетательных нефтяных скважинах, спрогнозируем среднее давление для куста 32, ВРБ 2.

Текст запроса

| fsget path=demo_press
| eval _time = floor(_time / 1000)
| search __pad_num=32 AND __vrb_num=2
| apply predict avg_value_h
| fields - predict

Описание запроса

  • Команда fsget загружает данные из хранилища признаков.
  • Команда eval преобразует формат времени Unix в миллисекундах в формат Unix в секундах.
  • Команда search оставляет для прогноза только указанный диапазон данных - куст 32 ВРБ 2.
  • Команда apply применяет алгоритм к указанным полям.

Результат запроса

После выполнения запроса будет создана дополнительная колонка prediction, в которой будет записан результат расчета алгоритма. В результате выполнения запроса могут быть созданы дополнительные служебные поля с информацией об обученной модели или другими показателями.

Predict

К началу