Прогнозирование с помощью усредненной модели прогнозов (учебник по интеллектуальному анализу данных — средний уровень)
В предыдущей задаче данного занятия использовался построитель прогнозирующих запросов для создания запроса, формирующего прогнозы по умолчанию для определенной модели прогнозов. В этой задаче предстоит научиться создавать прогнозирующий запрос, применяющий модель всемирных продаж к одному из отдельных регионов.
Использование данных для замены в прогнозировании временных рядов
В SQL Server 2008 функция PredictTimeSeries (расширения интеллектуального анализа данных) имеет два параметра, EXTEND_MODEL_CASES и REPLACE_MODEL_CASES, с помощью которых можно настраивать прогнозы временных рядов.
Параметр EXTEND_MODEL_CASES позволяет добавлять данные к существующей модели и создавать прогнозы на основании новых данных.
Параметр REPLACE_MODEL_CASES позволяет заменить ряд данных, который использовался для создания модели, данными другого ряда.
В этом сценарии будет использоваться параметр REPLACE_MODEL_CASES. Однако сначала необходимо настроить представление источника данных, содержащие только данные для замены. Данные для замены — это данные для каждого отдельного ряда. Затем будет создан прогнозирующий запрос, применяющий общую модель к данным для замены.
Создание представления источника данных, содержащего данные для замены
В окне Обозреватель решений щелкните правой кнопкой мыши элемент Представления источников данных и выберите команду Создать представление источника данных.
В окне мастера представлений источников данных выберите указанные ниже элементы.
Источник данных: Adventure Works DW2008
Выбор таблиц и представлений: не выбирайте никаких таблиц
Имя: T1000 Pacific Region
Нажмите кнопку Готово.
Щелкните правой кнопкой мыши в пустой области конструирования T1000 Pacific Region.dsv и выберите команду Создать именованный запрос.
Откроется диалоговое окно Создание именованного запроса. Введите имя снова и добавьте следующее описание:
Имя: T1000 Pacific Region
Описание: фильтровать vTimeSeries по региону и модели
В текстовой области введите следующий запрос:
SELECT ReportingDate, ModelRegion, Quantity, Amount FROM dbo.vTimeSeries WHERE (ModelRegion = N'T1000 Pacific')
Примечание Запрос также можно создать с помощью построителя запросов, но быстрее ввести текст запроса. Однако после ввода текста запроса можно щелкнуть другую область, чтобы увидеть, как выполняется анализ текста запроса и построение запроса из вспомогательных таблиц. Текст запроса также можно скопировать и сохранить в текстовый файл, чтобы использовать его повторно для других рядов данных.
Нажмите кнопку ОК.
В области конструктора представлений источника данных щелкните правой кнопкой мыши элемент T1000 Pacific и выберите команду Просмотр данных, чтобы убедиться в том, что данные отфильтрованы правильно.
Теперь нужно создать прогнозирующий запрос временных рядов обычным способом, но добавить параметр REPLACE_MODEL_CASES, чтобы указать, что ряд данных, на котором основывается запрос, должен заменяться новыми данными, предоставленными пользователем. Также нужно указать сопоставление между моделью интеллектуального анализа данных и входной таблицей.
Создание прогнозирующего запроса и предоставление данных для замены
Если модель еще не открыта, дважды щелкните структуру AllRegions и в окне конструктора интеллектуального анализа данных щелкните вкладку «Прогноз модели интеллектуального анализа данных».
В области Модель интеллектуального анализа данных модель AllRegions уже должна быть выделена. В противном случае щелкните Выбор модели и выделите эту модель.
В области Выбор входных таблиц нажмите кнопку Выбрать таблицу вариантов.
В диалоговом окне Выбор таблицы измените источник данных на T1000 Pacific Region и нажмите кнопку ОК.
Созданное представление источника данных отображается в виде таблицы со столбцами. Некоторые из столбцов уже могут быть сопоставлены со столбцами модели интеллектуального анализа данных.
Щелкните правой кнопкой мыши линию соединения между моделью интеллектуального анализа данных и входными данными и выберите команду Изменить соединения.
В диалоговом окне Изменение сопоставления проверьте, чтобы столбец ReportingDate в модели интеллектуального анализа данных был сопоставлен со столбцом ReportingDate во входных данных.
В диалоговом окне Изменение сопоставления в строке AvgQty щелкните в поле Столбец таблицы и выберите пункт T1000 Pacific.Quantity. Нажмите кнопку ОК.
На этом шаге столбец статического количества в общей модели сопоставляется со столбцом количества в ряде данных для замены.
В сетке щелкните первую пустую строку в столбце Источник и выберите пункт AllRegions. В столбце Поле выберите Region. В столбце Псевдоним введите Используемая модель.
На этом шаге к результатам добавляется столбец, который помогает запомнить, что прогнозы получены на основании общей модели.
Щелкните новую пустую строку в столбце Источник и выберите пункт Пользовательское выражение. В столбце Псевдоним введите Модель/Регион. В столбце Критерий или аргумент введите 'T1000 Pacific'.
На этом шаге к результатам добавляется метка, которая помогает запомнить, к какому ряду относятся прогнозы.
Щелкните новую пустую строку в столбце Источник и выберите пункт Прогнозирующая функция. В столбце Поле выберите пункт PredictTimeSeries. В столбце Псевдоним введите Predicted Values.
Перетащите поле AvgQty из области Модель интеллектуального анализа данных в столбец Критерий или аргумент.
В текстовом поле Критерий или аргумент за именем поля введите следующий текст: ,5, REPLACE_MODEL_CASES
Полный текст поля Критерий или аргумент должен иметь следующий вид: [AllRegions].[AvgQty],5,REPLACE_MODEL_CASES
Щелкните Результаты.
Просмотр результатов
Прогнозирующий запрос возвращает результаты наподобие следующих.
Используемая модель |
Модель/Регион |
Прогнозируемое количество |
---|---|---|
Все области |
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
|
Следующая задача занятия
См. также