Спонсор: Microsoft
Санкт-Петербургский государственный политехнический университет
Опубликован: 06.03.2012 | Доступ: свободный | Студентов: 1914 / 129 | Оценка: 4.00 / 4.00 | Длительность: 10:52:00
Специальности: Системный архитектор
Самостоятельная работа 16:

Использование алгоритма MicrosoftTimeSeries для прогнозирования значений временных рядов

< Самостоятельная работа 15 || Самостоятельная работа 16: 12

Прогнозирующие запросы

В написании прогнозирующих запросов к моделям, использующим алгоритм временных рядов, есть некоторые особенности. Из-за того, что исходные данные - это сам временной ряд, который уже использовался при обучении модели, в простых случаях необходимость в конструкции 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.7. Написание прогнозирующего запроса
Результат выполнения запроса

увеличить изображение
Рис. 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'
    
Задание 3. Проверьте работу приведенного выше запроса. Напишите запрос, выводящий ожидаемые результаты продаж модели T1000 в разных регионах на год вперед.

Теперь рассмотрим следующую задачу. Нужно построить прогноз при условии, что некоторые из исходных данных были бы другими. Например, если бы продажи велосипеда марки 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.
Рис.32.9. Результат выполнения запроса: 1 - для исходных данных, 2 -для модифицированных исходных данных
Задание 4. Проверьте работу приведенных выше запросов. Можно ли говорить о наличии корреляции между продажами модели R250 в Европе и M200 в Тихоокеанском регионе?
Задание 5. Самостоятельно разберитесь по справке с использованием параметра EXTEND_MODEL_CASES в функции PredictTimeSeries. Напишите прогнозирующий запрос с использованием данного параметра.
< Самостоятельная работа 15 || Самостоятельная работа 16: 12