kusto series_decompose_forecast () возвращает все нули - PullRequest
0 голосов
/ 28 февраля 2020

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

Наши необработанные данные kusto выглядят следующим образом:

enter image description here

Я хотел бы Прогноз значений а0. Вот мой запрос:

...
| distinct ['name']))
| summarize a0=avg(todouble(['temp'])) by d0=bin(['timestamp'], 1s), d1=['name']
| summarize timeAsList = make_list(d0), dataAsList0 = make_list(a0)
| extend forecast = series_decompose_forecast(dataAsList0, 60*60*24*3) // 3 day forecast
| render timechart 

Вот что делает запрос:

enter image description here

Эта строка - только наши производственные данные, не прогноз. Как вы видите, массив прогнозов - это просто массив нулей.

Что не так с запросом?

1 Ответ

0 голосов
/ 01 марта 2020

Второй параметр series_decompose_forecast определяет количество точек, которые нужно пропустить из исходного временного ряда. В вашем случае продолжительность вашего исходного временного ряда составляет ~ 1: 39 часов (просто взглянув на скриншот), поэтому установка 3 дней для пропуска не оставляет данных для обучения. Вам необходимо расширить временной ряд прогнозным периодом до вызова series_decompose_forecast. Также я рекомендую использовать make-series для создания временных рядов, заполняя пустые пробелы, вместо суммирования по bin и make list. Таким образом, окончательный запрос должен выглядеть следующим образом. Я не могу проверить это, поскольку у меня нет доступа к данным. Если вам нужно, пожалуйста, поделитесь образцом данных, и я сделаю вам полный рабочий запрос

спасибо Adi

let start_time=datetime(...);
let end_time=datetime(...);
let dt=1s;
let forecat_points=60*60*24*3
tbl
| make-series a0=avg(todouble(temp)) on timestamp from start_time to (end_time+forecast_points*dt) step dt 
| extend forecast = series_decompose_forecast(a0, forecast_points) // 3 day forecast
| render timechart
...