Прогнозирование
Команда 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, в которой будет записан результат расчета алгоритма. В результате выполнения запроса могут быть созданы дополнительные служебные поля с информацией об обученной модели или другими показателями.