Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

SQLServer08_DM_Nesterov

.pdf
Скачиваний:
168
Добавлен:
07.02.2016
Размер:
16.46 Mб
Скачать

Рис.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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]