Прогнозы временных рядов с заменой данных (учебник по интеллектуальному анализу данных — средний уровень)
В этой задаче вы создадите новую модель на основе данных о продажах во всем мире. Затем вы создадите прогнозирующий запрос, в котором модель мировых продаж будет применена к одному из регионов
Создание общей модели
Помните, что анализ результатов начальной модели интеллектуального анализа данных показал большие различия между регионами и линейками продуктов. Например, продажи модели M200 в Северной Америке были высоки, а продажи модели T1000 были не так успешны. Тем не менее анализ осложняется тем, что по некоторым рядам имелось мало данных либо сбор данных начался в другой момент времени. Кроме того, некоторые данные отсутствовали.
Для устранения некоторых проблем с качеством данных принимается решение слить воедино данные о продажах по всему миру и использовать этот набор общих трендов продаж для создания общей модели, которая позволит прогнозировать продажи в любом регионе.
Для прогнозирования вы будете использовать закономерность, полученную во время обучения модели с данными мировых продаж, но заменять исторические точки данных данными о продажах для каждого отдельного региона. Таким образом, форма тренда сохраняется, но спрогнозированные значения будут соответствовать историческим показателям продаж для каждого региона и модели.
Перекрестное прогнозирование с помощью модели временных рядов
Процесс использования данных одного ряда для прогнозирования трендов в другом ряду называется перекрестным прогнозированием. Перекрестное прогнозирование можно использовать во многих сценариях. Например, вы можете решить, что продажи телевизоров являются хорошим фактором для прогноза общей экономической деятельности, и применить модель, обученную на данных о продажах телевизоров, к общим экономическим данным.
Для перекрестного прогнозирования в интеллектуальном анализе данных SQL Server вы используете в аргументах для функции параметр REPLACE_MODEL_CASES, PredictTimeSeries (расширения интеллектуального анализа данных).
В следующей задаче вы узнаете, как использовать параметр REPLACE_MODEL_CASES. Вы используете объединенные данные о мировых продажах для создания модели, а затем создадите прогнозирующий запрос, сопоставляющий общую модель с данными для замены.
Предполагается, что вы уже знаете, как создавать модели интеллектуального анализа данных, поэтому инструкции по созданию модели упрощены.
Построение структуры и модели интеллектуального анализа данных с использованием агрегатных данных
В окне Обозреватель решений щелкните правой кнопкой мыши узел Структуры интеллектуального анализа данных и выберите команду Создать структуру интеллектуального анализа данных, чтобы запустить мастер интеллектуального анализа данных.
В окне мастера интеллектуального анализа данных выберите указанные ниже элементы.
Алгоритм: алгоритм временных рядов (Майкрософт)
В качестве источника данных для модели используйте источник данных, который уже создали ранее на этом уроке. См. раздел Расширенные прогнозы временных рядов (учебник по интеллектуальному анализу данных — средний уровень).
Представление источника данных: AllRegions
Выберите следующие столбцы для ключа ряда и временного ключа:
Key time: ReportingDate
Раздел реестра: Region
Выберите следующие столбцы для Input и Predict:
SumQty
SumAmt
AvgAmt
AvgQty
В поле Имя структуры интеллектуального анализа данных введите следующее: Все области
В поле Имя модели интеллектуального анализа данных введите следующее: Все области
Обработайте новую структуру и новую модель.
Создание прогнозирующего запроса и сопоставление данных для замены с моделью
Если модель еще не открыта, дважды щелкните структуру AllRegions и в окне конструктора интеллектуального анализа данных щелкните вкладку Прогноз модели интеллектуального анализа данных.
На панели Модель интеллектуального анализа данных должна быть выбрана модель AllRegions. В противном случае нажмите Выбрать модель и выделите модель AllRegions.
На панели Выбор входных таблиц нажмите кнопку Выбрать таблицу вариантов.
В диалоговом окне Выбор таблицы измените источник данных на T1000 Pacific Region и нажмите кнопку ОК.
Щелкните правой кнопкой мыши соединительную линию между моделью интеллектуального анализа данных и входными данными и выберите команду Изменить соединения. Сопоставьте данные в представлении источника данных с моделью следующим образом.
Проверьте, что столбец ReportingDate в модели интеллектуального анализа данных сопоставлен со столбцом ReportingDate во входных данных.
В диалоговом окне Изменение сопоставления в строке для модели столбца AvgQty щелкните в поле Столбец таблицы и выберите T1000 Pacific.Quantity. Нажмите кнопку ОК.
На этом шаге сопоставляется столбец, созданный в модели для прогнозирования среднего количества, с фактическими данными о количестве продаж продукта T1000.
Не сопоставляйте столбец Region в модели с каким-либо входным столбцом.
Поскольку в модели объединены данные по всем рядам, для значений рядов, таких как T1000 Pacific, совпадений нет и при выполнении прогнозирующего запроса возникает ошибка.
Теперь вы создадите прогнозирующий запрос.
Сначала добавьте к результатам столбец, в котором выводится метка AllRegions из модели вместе с прогнозами. Таким образом, вы знаете, что результаты были основаны на общей модели.
В сетке щелкните первую пустую строку в столбце Источник и выберите пункт AllRegions mining model.
В Поле выберите Region.
В столбце Псевдоним введите строку «Используемая модель».
Теперь добавьте к результатам другую метку, чтобы видеть, к какому ряду относится прогноз.
Щелкните пустую строку в столбце Источник и выберите пункт Пользовательское выражение.
В столбце Псевдоним введите ModelRegion.
В столбце Критерий или аргумент введите 'T1000 Pacific'.
Теперь вы создадите функцию перекрестного прогнозирования.
Щелкните пустую строку и в столбце Источник и выберите пункт Прогнозирующая функция.
В столбце Поле выберите PredictTimeSeries.
В столбце Псевдоним введите строку «Predicted Values».
Перетащите поле AvgQty с панели Модель интеллектуального анализа данных в столбец Критерий или аргумент.
В столбце Критерий или аргумент за именем поля введите следующий текст: ,5, REPLACE_MODEL_CASES
Полный текст текстового поля Критерий или аргумент должен иметь следующий вид: [AllRegions].[AvgQty],5,REPLACE_MODEL_CASES
Щелкните Результаты.
Создание запроса перекрестного прогнозирования в DMX
Возможно, вы уже заметили проблему с перекрестным прогнозированием: чтобы применить общую модель к другому ряду данных (например, модели продукта T1000 в североамериканском регионе), для каждого ряда приходится создавать отдельный запрос.
Но можно не создавать запрос в конструкторе, а перейти в представление DMX и отредактировать созданную инструкцию 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 DW2003R2], '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 в Северной Америке на основании шаблонов в общей модели.
Следующая задача занятия
См. также
Справочник
PredictTimeSeries (расширения интеллектуального анализа данных)