Поделиться через


Занятие 5. Расширение модели временных рядов

В выпуске SQL Server 2012 Enterprise в модель временных рядов можно добавлять новые данные и автоматически встраивать в эту модель новые данные. Добавить новые данные в модель интеллектуального анализа данных временных рядов можно одним из двух способов.

  • Использовать PREDICTION JOIN для соединения данных из внешнего источника с обучающими данными.

  • Использовать одноэлементный прогнозирующий запрос для предоставления каждый раз данных только одного среза.

Предположим, что несколько месяцев назад проводилось обучение модели интеллектуального анализа данных на существующих данных продаж. При выполнении новых продаж может понадобиться обновить прогнозы продаж, чтобы учесть новые данные. Это можно сделать за один шаг, предоставив новые показатели продаж в качестве входных данных и формируя новые прогнозы на базе основного набора данных.

Прогнозирование с помощью EXTEND_MODEL_CASES

Далее представлены универсальные примеры прогноза временного ряда с использованием параметра EXTEND_MODEL_CASES. Первый пример позволяет задать число прогнозов, начиная с последнего временного шага исходной модели.

SELECT [<model columns>,] PredictTimeSeries(<table column reference>, n, EXTEND_MODEL_CASES) 
FROM <mining model>
PREDICTION JOIN <source query>
[WHERE <criteria>]

Второй пример позволяет задать временной шаг, где должно быть начато прогнозирование и где оно должно быть закончено. Эта возможность важна при расширении вариантов модели, поскольку по умолчанию временные шаги, используемые для прогнозирующих запросов, всегда начинаются в конце исходного ряда.

SELECT [<model columns>,] PredictTimeSeries(<table column reference>, n-start, n-end, EXTEND_MODEL_CASES) 
FROM <mining model>
PREDICTION JOIN <source query>
[WHERE <criteria>}

В этом учебнике будут созданы оба типа запросов.

Создание одноэлементного прогнозирующего запроса на модели временных рядов

  1. В окне Обозреватель объектов щелкните правой кнопкой мыши экземпляр службы Службы Analysis Services, укажите Создать запрос, а затем выберите пункт Расширения интеллектуального анализа данных.

    Откроется редактор запросов, содержащий новый пустой запрос.

  2. Скопируйте общий пример одноэлементной инструкции в пустой запрос.

  3. Замените:

    SELECT [<model columns>,] PredictTimeSeries(<table column reference>, n, EXTEND_MODEL_CASES) 
    

    на:

    SELECT [Model Region],
    PredictTimeSeries([Quantity],6, EXTEND_MODEL_CASES) AS PredictQty
    

    В первой строке извлекается значение из модели, которая идентифицирует ряд.

    Следующая строка содержит прогнозирующую функцию, которая получает 6 прогнозов для Quantity. Псевдоним PredictQty присваивается столбцу результата прогноза, чтобы облегчить понимание результатов.

  4. Вместо

    FROM <mining model>
    

    вставьте

    FROM [Forecasting_MIXED]
    
  5. Вместо

    PREDICTION JOIN <source query>
    

    вставьте

    NATURAL PREDICTION JOIN 
    (
       SELECT 1 AS [Reporting Date],
       '10' AS [Quantity],
       'M200 Europe' AS [Model Region]
       UNION SELECT
       2 AS [Reporting Date],
       15 AS [Quantity]),
       'M200 Europe' AS [Model Region]
    ) AS t
    
  6. Вместо

    [WHERE <criteria>]
    

    вставьте

    WHERE [ModelRegion] = 'M200 Europe' OR
    [ModelRegion] = 'M200 Pacific'
    

    Полная инструкция теперь должна выглядеть следующим образом.

    SELECT [Model Region],
    PredictTimeSeries([Quantity],6, EXTEND_MODEL_CASES) AS PredictQty
    FROM
       [Forecasting_MIXED]
    NATURAL PREDICTION JOIN 
       SELECT 1 AS [ReportingDate],
      '10' AS [Quantity],
      'M200 Europe' AS [ModelRegion]
    UNION SELECT
      2 AS [ReportingDate],
      15 AS [Quantity]),
      'M200 Europe' AS [ModelRegion]
    ) AS t
    WHERE [ModelRegion] = 'M200 Europe' OR
    [ModelRegion] = 'M200 Pacific'
    
  7. В меню Файл выберите Сохранить DMXQuery1.dmx как...

  8. В диалоговом окне Сохранить как перейдите к соответствующей папке и присвойте файлу имя Singleton_TimeSeries_Query.dmx.

  9. На панели инструментов нажмите кнопку Выполнить.

    Запрос возвращает прогнозы объема продаж велосипедов M200 в европейском и тихоокеанском регионах.

Основные сведения о запуске прогноза при помощи параметра EXTEND_MODEL_CASES

Теперь, после создания прогнозов, основанных на исходной модели, и имея новые данные, можно сравнить результаты, чтобы увидеть, каким образом обновление данных продаж влияет на прогнозы. Перед этим просмотрите только что созданный код и обратите внимание на следующие моменты.

  • Предоставлены новые данные только для европейского региона.

  • Предоставлены новые данные только за два месяца.

В следующей таблице показано, как новые значения, предоставленные для продаж модели M200 Europe, влияют на прогнозы. Не предоставлены новые данные для продукта M200 в тихоокеанском регионе, но для сравнения представлен этот ряд.

Продукт и регион

Существующая модель (PredictTimeSeries)

Модель с обновленными данными продаж (PredictTimeSeries с EXTEND_MODEL_CASES)

M200 Europe

M200 Europe

7/25/2008 12:00:00 AM

77

M200 Europe

8/25/2008 12:00:00 AM

64

M200 Europe

9/25/2008 12:00:00 AM

59

M200 Europe

10/25/2008 12:00:00 AM

56

M200 Europe

11/25/2008 12:00:00 AM

56

M200 Europe

12/25/2008 12:00:00 AM

74

M200 Europe

7/25/2008 12:00:00 AM

10

M200 Europe

8/25/2008 12:00:00 AM

15

M200 Europe

9/25/2008 12:00:00 AM

72

M200 Europe

10/25/2008 12:00:00 AM

69

M200 Europe

11/25/2008 12:00:00 AM

68

M200 Europe

12/25/2008 12:00:00 AM

89

M200 Pacific

M200 Pacific

7/25/2008 12:00:00 AM

41

M200 Pacific

8/25/2008 12:00:00 AM

44

M200 Pacific

9/25/2008 12:00:00 AM

38

M200 Pacific

10/25/2008 12:00:00 AM

41

M200 Pacific

11/25/2008 12:00:00 AM

36

M200 Pacific

12/25/2008 12:00:00 AM

39

M200 Pacific

7/25/2008 12:00:00 AM

41

M200 Pacific

8/25/2008 12:00:00 AM

44

M200 Pacific

9/25/2008 12:00:00 AM

38

M200 Pacific

10/25/2008 12:00:00 AM

41

M200 Pacific

11/25/2008 12:00:00 AM

36

M200 Pacific

12/25/2008 12:00:00 AM

39

Эти результаты позволяют сделать два вывода.

  • Первые два прогноза для ряда M200 Europe точно совпадают с предоставленными новыми данными. Как определено при проектировании, службы Analysis Services возвращают новые точки данных вместо выполнения прогноза. Причина этого заключается в том, что при расширении вариантов модели временные шаги, используемые для прогнозирующих запросов, всегда начинаются в конце исходного ряда. Следовательно, если добавляется две новые точки данных, первые два возвращенных прогноза перекрываются новыми данными.

  • После исчерпания новых точек данных службы Службы Analysis Services выполняют прогнозирование, основываясь обновленной модели. Поэтому начиная с сентября 2005 г. можно видеть разницу между прогнозами для M200 Europe для исходной модели, в левом столбце, и для модели, которая использует параметр EXTEND_MODEL_CASES, в правом столбце. Прогнозы будут отличаться, поскольку модель обновлена новыми данными.

Использование начального и конечного временных шагов для управления прогнозированием

При расширении модели новые данные всегда присоединяются в конец ряда. Но для целей прогноза временные срезы, используемые для прогнозирующих запросов, начинаются в конце исходной последовательности. Если при добавлении новых данных нужно получить только новые прогнозы, начальную точку необходимо указывать в виде номера временного среза. Например, если добавляются две новые точки данных и нужно сделать четыре новых прогноза, то необходимо выполнить следующие действия.

  • Создать PREDICTION JOIN для модели временных рядов и задать новые данные за два месяца.

  • Запросить прогнозы для четырех временных срезов, где начальной точкой будет временной срез 3, а конечной — временной срез 6.

Таким образом, если новые данные содержат n временных срезов и запрашиваются прогнозы для временных шагов с 1 по n, то период прогнозирования совпадет с периодом новых данных. Чтобы получить новые прогнозы для периодов времени, не охваченных имеющимися данными, необходимо либо начать прогнозирование с временного среза n+1 после нового ряда данных, либо запросить дополнительные временные срезы.

ПримечаниеПримечание

Когда добавляются новые данные, исторические прогнозы невозможны.

В следующем примере продемонстрирована инструкция расширений интеллектуального анализа данных, которая позволяет получить только новые прогнозы для двух временных рядов предыдущего примера.

SELECT [Model Region],
PredictTimeSeries([Quantity],3,6, EXTEND_MODEL_CASES) AS PredictQty
FROM
   [Forecasting_MIXED]
NATURAL PREDICTION JOIN 
   SELECT 1 AS [ReportingDate],
  '10' AS [Quantity],
  'M200 Europe' AS [ModelRegion]
UNION SELECT
  2 AS [ReportingDate],
  15 AS [Quantity]),
  'M200 Europe' AS [ModelRegion]
) AS t
WHERE [ModelRegion] = 'M200 Europe'

Результаты прогноза начинаются с временного среза 3, который идет после предоставленных новых данных за два месяца.

Продукт и регион

Модель с обновленными данными (PredictTimeSeries с EXTEND_MODEL_CASES)

M200 Europe

M200 Europe

9/25/2008 12:00:00 AM

72

M200 Europe

10/25/2008 12:00:00 AM

69

M200 Europe

11/25/2008 12:00:00 AM

68

M200 Europe

12/25/2008 12:00:00 AM

89

Прогнозирование с помощью REPLACE_MODEL_CASES

Замена вариантов полезна в том случае, если необходимо обучить модель на одном наборе вариантов, а затем применить эту модель к другому ряду данных. Подробное пошаговое руководство для этого сценария представлено на занятии Занятие 2. Построение сценария прогнозирования (учебник по интеллектуальному анализу данных — средний уровень).

См. также

Справочник

PredictTimeSeries (расширения интеллектуального анализа данных)

Основные понятия

Примеры запросов моделей временных рядов