| Гамбия |
Использование алгоритма MicrosoftTimeSeries для прогнозирования значений временных рядов
Прогнозирующие запросы
В написании прогнозирующих запросов к моделям, использующим алгоритм временных рядов, есть некоторые особенности. Из-за того, что исходные данные - это сам временной ряд, который уже использовался при обучении модели, в простых случаях необходимость в конструкции PredictionJoin отпадает. В запросах используется функция PredictTimeSeries, которая получает на вход имя атрибута и количество предсказываемых значений, а возвращает таблицу спрогнозированных результатов.
Рассмотрим создание запроса. На вкладке MiningModelPrediction переключимся в режим написания текста запроса (Query, рис. 32.5). И введем нижеследующий код:
SELECT
[vTimeSeries_TS].[ModelRegion],
PredictTimeSeries([vTimeSeries_TS].[Quantity],6) as QTY
From
[vTimeSeries_TS]
WHERE [vTimeSeries_TS].[Model Region] = 'R250 Europe'OR [vTimeSeries_TS].[Model Region] = 'R750 Europe'
Мы хотим получить оценки для объемов продаж моделей R250 и R750 в Европе на 6 месяцев вперед. После этого переключаемся к представлению результатов выполнения запроса (Result, рис. 32.8).
На рис. 32.8 результаты прогнозирования представлены в "иерархическом" формате. Чтобы получить результат в виде таблицы, несколько изменим инструкцию, дополнив SELECT ключевым словом FLATTENED:
SELECTFLATTENED
[vTimeSeries_TS].[Model Region],
PredictTimeSeries([vTimeSeries_TS].[Quantity],6) as QTY
From
[vTimeSeries_TS]
WHERE [vTimeSeries_TS].[Model Region] = 'R250 Europe'OR [vTimeSeries_TS].[Model Region] = 'R750 Europe'
Теперь рассмотрим следующую задачу. Нужно построить прогноз при условии, что некоторые из исходных данных были бы другими. Например, если бы продажи велосипеда марки R250 в Европе за два предыдущих месяца были бы 10 и 12 штук (исходные значения были 16 и 13 соответственно). Это можно сделать, используя параметр REPLACE_MODEL_CASES в функции PredictTimeSeries.
Чтобы увидеть, как работает параметр, для начала выполним запрос без него. Код приведен ниже, а интересующий нас фрагмент таблицы с результатами выполнения показан на рис. 32.9-1.
SELECTFLATTENED
[Model Region],
PredictTimeSeries([vTimeSeries_TS].[Quantity],6)
From
[vTimeSeries_TS]
Теперь укажем, что нужно заместить значения по продажам 'R250 Europe' за два последних месяца значениями 10 и 12. Соответствующий код приведен ниже. При замене из нового набора берется вариант с самым большим значением метки времени, и им заменяется значение с самой большойметкой времени из исходного набора, и т.д. Фрагмент результата выполнения представлен на рис. 32.9-2. Из него видно, что прогноз для 'R250 Europe' изменился.
SELECTFLATTENED
[Model Region],
PredictTimeSeries([vTimeSeries_TS].[Quantity],6, REPLACE_MODEL_CASES)
From
[vTimeSeries_TS]
NATURALPREDICTIONJOIN (
SELECT 1 as [Date Series], 'R250 Europe'as [Model Region], 10 as [Quantity]
UNION
SELECT 2 as [Date Series], 'R250 Europe'as [Model Region], 12 as [Quantity]) as t
| 1 | 2 |
| Рис.32.9. Результат выполнения запроса: 1 - для исходных данных, 2 -для модифицированных исходных данных | |



