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


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

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

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

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

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

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

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

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

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

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

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

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

    Имя: 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. В столбце Поле выберите «Регион», в столбце Псевдоним введите Используемая модель.

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

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

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

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

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

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

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

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

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

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

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

ModelRegion

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

Все области

T-1000 Pacific

$TIMEAvg Qty
7/25/2008 12:00:00 AM68
8/25/2008 12:00:00 AM52
9/25/2008 12:00:00 AM48
10/25/2008 12:00:00 AM56
11/25/2008 12:00:00 AM44

Если требуется применить общую модель к другому ряду данных, такому как модель продукта 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 DW2008R2],
    '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
7/25/2008 12:00:00 AM103
8/25/2008 12:00:00 AM84
9/25/2008 12:00:00 AM79
10/25/2008 12:00:00 AM85
11/25/2008 12:00:00 AM68