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


Прогнозирование с помощью усредненной модели прогнозов (учебник по интеллектуальному анализу данных — средний уровень)

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

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

В SQL Server 2008 функция PredictTimeSeries (расширения интеллектуального анализа данных) имеет два параметра, EXTEND_MODEL_CASES и REPLACE_MODEL_CASES, с помощью которых можно настраивать прогнозы временных рядов.

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

  • Параметр REPLACE_MODEL_CASES позволяет заменить ряд данных, который использовался для создания модели, данными другого ряда.

В этом сценарии будет использоваться параметр REPLACE_MODEL_CASES. Однако сначала необходимо настроить представление источника данных, содержащие только данные для замены. Данные для замены — это данные для каждого отдельного ряда. Затем будет создан прогнозирующий запрос, применяющий общую модель к данным для замены.

Создание представления источника данных, содержащего данные для замены

  1. В окне Обозреватель решений щелкните правой кнопкой мыши элемент Представления источников данных и выберите команду Создать представление источника данных.

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

    Источник данных: Adventure Works DW2008

    Выбор таблиц и представлений: не выбирайте никаких таблиц

    Имя: T1000 Pacific Region

  3. Нажмите кнопку Готово.

  4. Щелкните правой кнопкой мыши в пустой области конструирования T1000 Pacific Region.dsv и выберите команду Создать именованный запрос.

    Откроется диалоговое окно Создание именованного запроса. Введите имя снова и добавьте следующее описание:

    Имя: T1000 Pacific Region

    Описание: фильтровать vTimeSeries по региону и модели

  5. В текстовой области введите следующий запрос:

    SELECT ReportingDate, ModelRegion, Quantity, Amount
    FROM dbo.vTimeSeries
    WHERE (ModelRegion = N'T1000 Pacific')
    
    ПримечаниеПримечание

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

  6. Нажмите кнопку ОК.

  7. В области конструктора представлений источника данных щелкните правой кнопкой мыши элемент T1000 Pacific и выберите команду Просмотр данных, чтобы убедиться в том, что данные отфильтрованы правильно.

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

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

  1. Если модель еще не открыта, дважды щелкните структуру AllRegions и в окне конструктора интеллектуального анализа данных щелкните вкладку «Прогноз модели интеллектуального анализа данных».

  2. В области Модель интеллектуального анализа данных модель AllRegions уже должна быть выделена. В противном случае щелкните Выбор модели и выделите эту модель.

  3. В области Выбор входных таблиц нажмите кнопку Выбрать таблицу вариантов.

  4. В диалоговом окне Выбор таблицы измените источник данных на T1000 Pacific Region и нажмите кнопку ОК.

    Созданное представление источника данных отображается в виде таблицы со столбцами. Некоторые из столбцов уже могут быть сопоставлены со столбцами модели интеллектуального анализа данных.

  5. Щелкните правой кнопкой мыши линию соединения между моделью интеллектуального анализа данных и входными данными и выберите команду Изменить соединения.

  6. В диалоговом окне Изменение сопоставления проверьте, чтобы столбец ReportingDate в модели интеллектуального анализа данных был сопоставлен со столбцом ReportingDate во входных данных.

  7. В диалоговом окне Изменение сопоставления в строке AvgQty щелкните в поле Столбец таблицы и выберите пункт T1000 Pacific.Quantity. Нажмите кнопку ОК.

    На этом шаге столбец статического количества в общей модели сопоставляется со столбцом количества в ряде данных для замены.

  8. В сетке щелкните первую пустую строку в столбце Источник и выберите пункт AllRegions. В столбце Поле выберите Region. В столбце Псевдоним введите Используемая модель.

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

  9. Щелкните новую пустую строку в столбце Источник и выберите пункт Пользовательское выражение. В столбце Псевдоним введите Модель/Регион. В столбце Критерий или аргумент введите 'T1000 Pacific'.

    На этом шаге к результатам добавляется метка, которая помогает запомнить, к какому ряду относятся прогнозы.

  10. Щелкните новую пустую строку в столбце Источник и выберите пункт Прогнозирующая функция. В столбце Поле выберите пункт PredictTimeSeries. В столбце Псевдоним введите Predicted Values.

  11. Перетащите поле AvgQty из области Модель интеллектуального анализа данных в столбец Критерий или аргумент.

  12. В текстовом поле Критерий или аргумент за именем поля введите следующий текст: ,5, REPLACE_MODEL_CASES

    Полный текст поля Критерий или аргумент должен иметь следующий вид: [AllRegions].[AvgQty],5,REPLACE_MODEL_CASES

  13. Щелкните Результаты.

Просмотр результатов

Прогнозирующий запрос возвращает результаты наподобие следующих.

Используемая модель

Модель/Регион

Прогнозируемое количество

Все области

T-1000 Pacific

$TIMEAvg Qty
25.07.2004 00:00:0068
25.08.2004 00:00:0052
25.09.2004 00:00:0048
25.10.2004 00:00:0056
25.11.2004 00:00:0044

Чтобы применить общую модель к другому ряду данных, например модель продукта T1000 в Североамериканском регионе, для каждого ряда необходимо создавать другой запрос. Тем не менее вместо выполнения полностью всего процесса построения представления источника данных, можно отредактировать созданную инструкцию DMX и по-разному отфильтровать входные данные. Например, следующая инструкция DMX представляет только что созданный запрос:

SELECT
  ([All Regions].[Region]) as [Model Used],
  ( 'T-1000 Pacific') as [ModelRegion],
  (PredictTimeSeries([All Regions].[Avg Qty],5, REPLACE_MODEL_CASES)) as [Predicted Quantity]
FROM
  [All Regions]
PREDICTION JOIN
  OPENQUERY([Adventure Works DW2008],
    'SELECT
      [ReportingDate]
    FROM
      (SELECT        ReportingDate, ModelRegion, Quantity, Amount
FROM            dbo.vTimeSeries
WHERE        (ModelRegion = N''T1000 Pacific'')) as [T1000 Pacific]
    ') AS t
ON
  [All Regions].[Reporting Date] = t.[ReportingDate] AND
   [All Regions].[Avg Qty] = t.[Quantity]

Для применения этой инструкции к другой модели необходимо лишь отредактировать инструкцию запроса, чтобы заменить условие фильтра и метки, примененные к каждому результату. Например, в случае изменения условий фильтра и меток столбцов путем замены «Pacific» на «North America» будут получены прогнозы для продукта T1000 в Северной Америке на основании шаблонов в общей модели.

Используемая модель

Модель/Регион

Прогнозируемое количество

Все области

T-1000 North America

$TIMEAvg Qty
25.07.2004 00:00:00103
25.08.2004 00:00:0084
25.09.2004 00:00:0079
25.10.2004 00:00:0085
25.11.2004 00:00:0068