SQLServer08_DM_Nesterov
.pdfРис.5.162. Данные из представления vTimeSeries базы
AdventureWorksDW
Таблица 5.1
Представление временных рядов в «столбчатом» формате
Дата |
M200 |
R200 |
… |
|
|
|
|
200101 |
100 |
50 |
|
|
|
|
|
200102 |
120 |
20 |
|
|
|
|
|
… |
…. |
…. |
|
|
|
|
|
Процесс создания DSV подробно разбирался в лабораторной работе № 11 и новое представление надо создать аналогичным образом. Назовем созданное представление источника данных TimeSeries_dsv.
Далее потребуется создать в среде BI Dev Studio модель для прогнозирования рядов. Начало создания модели: будем использовать данные из реляционной БД, алгоритм – Microsoft Time Series (Алгоритм временных рядов Microsoft), представление источника данных – TimeSeries_dsv, таблица с данными – vTimeSeries.
Определим, какие атрибуты потребуются для прогноза. Мы имеем дело с чередующимся временным рядом, и чтобы идентифицировать один его элемент, надо указать отметку времени и название модели велосипеда. Значит и ключевых атрибутов будет два – DateSeries (отметка времени) и ModelRegion. Прогнозировать будем значе-
251
ния объема продаж в денежном эквиваленте (Amount) и количество проданных велосипедов (Quantity). Эти атрибуты также будут рассматриваться и в качестве входных (рис.5.163).
Рис.5.163. Выбор прогнозируемых атрибутов
Следующий шаг – определение типов данных и содержимого для выбранных атрибутов. Здесь можно согласиться с автоматически подобранными значениями (рис.5.164). Стоит обратить внимание на тип содержимого Key Time, выбранный для столбца [DateSeries]. Столбец с таким типом обязательно должен присутствовать, если будет использоваться алгоритм интеллектуального анализа Microsoft Time Series.
Назовем создаваемую структуру vTimeSeries_TS_Structure, а модель – vTimeSeries_TS (рис.5.165). После создания структуры и модели интеллектуального анализа можно более точно настроить параметры. В свойствах модели можно явно указать, что во временном ряде ожидается периодичность 12 (число месяцев в году, т.к. у нас данные с продажами по месяцам, рис.5.166).
252
Рис.5.164. Выбор типа содержимого и типа данных
Рис.5.165. Указание имен модели и структуры
253
Рис.5.166.Указание периодичности – 12 (число месяцев в году)
После выполнения описанных действий, надо провести полную обработку модели, и на вкладке Mining Model Viewer появится возможность просмотреть результаты (рис.5.167). Непрерывной линией изображены фактические данные, пунктиром – прогнозируемые результаты. Поле Prediction steps позволяет указать, на сколько шагов вперед предсказывается значение ряда, а выпадающий список под ним – выбрать значения, для которых строятся графики.
Задание 1. По аналогии с рассмотренным примером создайте структуру и модель интеллектуального анализа данных для прогнозирования продаж AdventureWorks. Не указывайте значение для периодичности. Проведите обработку модели, постройте графики продаж велосипедов модели M200 в разных регионах с прогнозом на год (12 значений). Проанализируйте результаты.
Задание 2. Укажите в параметрах алгоритма периодичность 12 (рис.5.166). Проведите повторную обработку модели и снова проанализируйте графики прогноза на год. Есть ли изменения? Чем можно объяснить полученный результат?
254
Рис.5.167.Просмотр графиков. Пунктирная линия – прогнозируемые значения
Прогнозирующие запросы
В написании прогнозирующих запросов к моделям, использующим алгоритм временных рядов, есть некоторые особенности. Из-за того, что исходные данные – это сам временной ряд, который уже использовался при обучении модели, в простых случаях необходимость в конструкции Prediction Join отпадает. В запросах используется функция PredictTimeSeries, которая получает на вход имя атрибута и количество предсказываемых значений, а возвращает таблицу спрогнозированных результатов.
Рассмотрим создание запроса. На вкладке Mining Model Prediction переключимся в режим написания текста запроса (Query, рис.5.168). И введем следующий код:
SELECT [vTimeSeries_TS].[Model Region], PredictTimeSeries([vTimeSeries_TS].[Quantity],6) as QTY
255
From [vTimeSeries_TS]
WHERE [vTimeSeries_TS].[Model Region] = 'R250 Europe' OR [vTimeSeries_TS].[Model Region] = 'R750 Europe'
Рис.5.168. Написание прогнозирующего запроса
В запросе мы хотим получить оценки для объемов продаж моделей R250 и R750 в Европе на 6 месяцев вперед. После этого переключаемся к представлению результатов выполнения запроса (пункт выпадающего меню Result, рис.5.168). На рисунке 5.169 результаты прогнозирования представлены в «иерархическом» формате. Чтобы получить результат в виде таблицы, несколько изменим инструкцию, дополнив SELECT ключевым словом FLATTENED:
SELECT FLATTENED [vTimeSeries_TS].[Model Region], PredictTimeSeries([vTimeSeries_TS].[Quantity],6) as
QTY
From [vTimeSeries_TS]
WHERE [vTimeSeries_TS].[Model Region] = 'R250 Europe' OR [vTimeSeries_TS].[Model Region] = 'R750 Europe'
256
Рис.5.169. Результат выполнения запроса
Задание 3. Проверьте работу приведенного выше запроса. Напишите запрос, выводящий ожидаемые результаты продаж модели T1000 в разных регионах на год вперед.
Теперь рассмотрим следующую задачу. Нужно построить прогноз при условии, что некоторые из исходных данных были бы другими. Например, если бы продажи велосипеда марки R250 в Европе за два предыдущих месяца были бы 10 и 12 штук (исходные значения были 16 и 13 соответственно). Это можно сделать, используя пара-
метр REPLACE_MODEL_CASES в функции PredictTimeSeries.
Чтобы увидеть, как работает параметр, для начала выполним запрос без него. Код приведен ниже, а интересующий нас фрагмент таблицы с результатами выполнения показан на рис. 5.170-a.
SELECT FLATTENED [Model Region], PredictTimeSeries([vTimeSeries_TS].[Quantity],6)
From [vTimeSeries_TS]
Теперь укажем, что нужно заместить значения по продажам ‗R250 Europe‘ за два последних месяца значениями 10 и 12. Соответ-
257
ствующий код приведен ниже. При замене из нового набора берется вариант с самым большим значением метки времени, и им заменяется значение с самой большой меткой времени из исходного набора, и т.д. Фрагмент результата выполнения представлен на рис. 5.170-b. Из него видно, что прогноз для ‗R250 Europe‘ изменился.
SELECT FLATTENED [Model Region], PredictTimeSeries([vTimeSeries_TS].[Quantity], 6, REPLACE_MODEL_CASES) From [vTimeSeries_TS]
NATURAL PREDICTION JOIN ( SELECT 1 as [Date Series], 'R250 Europe' as [Model Region], 10 as [Quantity] UNION
SELECT 2 as [Date Series], 'R250 Europe'as [Model Region], 12 as [Quantity]) as t
a |
b |
Рис.5.170. Результат выполнения запроса a) - для исходных данных, b) – для модифицированных исходных данных
Задание 4. Проверьте работу приведенных выше запросов. Можно ли говорить о наличии корреляции между продажами модели R250 в Европе и M200 в Тихоокеанском регионе?
Задание 5. Самостоятельно разберитесь по справке с использованием параметра EXTEND_MODEL_CASES в функции PredictTimeSeries. Напишите прогнозирующий запрос с использованием данного параметра.
258
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1.Макленнен, Джеми. Microsoft SQL Server 2008: Data mining
–интеллектуальный анализ данных: [пер. с англ.] / Джеми Макленнен, Чжаохуэй Танг, Богдан Криват. – СПб.: БХВ-Петербург, 2009. – 720с.
2.Барсегян А. А. Анализ данных и процессов: учеб. пособие / А.А. Барсегян, М.С. Куприянов, И.И. Холод, М.Д.Тесс, С.И. Елизаров. – 3-е изд., перераб. и доп. – СПб.: БХВ-Петербург, 2009. – 512 с.
3.Службы Analysis Services — видеоролики по интеллектуальному анализу данных (SQL Server 2008). URL:
http://msdn.microsoft.com/ru-ru/library/dd776389(v=SQL.100).aspx
4.Чубукова И. А. Data Mining. – М.: Интернет-университет информационных технологий, Бином. Лаборатория знаний, 2008 –
382 с.
5.Службы SQL Server Analysis Services – интеллектуальный
анализ |
данных. |
URL: |
http://msdn.microsoft.com/ru- |
ru/library/bb510517.aspx
6.Алгоритмы интеллектуального анализа данных (службы Analysis Services – интеллектуальный анализ данных). URL: http://msdn.microsoft.com/ru-ru/library/ms175595.aspx
7.Основные понятия интеллектуального анализа данных (службы Analysis Services – интеллектуальный анализ данных). URL: http://msdn.microsoft.com/ru-ru/library/ms174949.aspx
8.Вложенные таблицы (службы Analysis Services – интеллек-
туальный анализ данных). URL: http://msdn.microsoft.com/ruru/library/ms175659.aspx
9.Типы данных (интеллектуальный анализ данных). URL: http://msdn.microsoft.com/ru-ru/library/ms174796.aspx
10.Типы содержимого (интеллектуальный анализ данных).
URL: http://msdn.microsoft.com/ru-ru/library/ms174572.aspx
259
11.CREATE MINING STRUCTURE (расширения интеллектуального анализа данных) URL:http://msdn.microsoft.com/ruru/library/ms131977.aspx
12.Инструкции управления данными расширений интеллек-
туального анализа данных. URL: http://msdn.microsoft.com/ruru/library/ms131982.aspx
13.Введение в Data Mining на базе SQL Server 2008. URL: http://www.techdays.ru/videos/1376.html
14.Учебник по расширениям интеллектуального анализа данных для прогнозирования временных рядов. URL: http://msdn.microsoft.com/ru-ru/library/cc879270.aspx
15.Глоссарий. Метод k-средних. Статья с сайта компании
BaseGroup Labs. URL: http://www.basegroup.ru/glossary/definitions/k_means/
16.Технический справочник по алгоритму кластеризации
(Майкрософт). URL: http://msdn.microsoft.com/ruru/library/cc280445(v=SQL.100).aspx
17.Технический справочник по алгоритму взаимосвязей
(Майкрософт). URL: http://msdn.microsoft.com/ruru/library/cc280428(v=SQL.100).aspx
18.Технический справочник по алгоритму логистической ре-
грессии (Майкрософт). URL: http://msdn.microsoft.com/ruru/library/cc645904(v=SQL.100).aspx
19.Содержимое моделей интеллектуального анализа данных для моделей нейронных сетей (службы Analysis Services – интеллек-
туальный анализ данных). URL: http://msdn.microsoft.com/ruru/library/cc645783(v=SQL.100).aspx
260