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

SQLServer08_DM_Nesterov

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

4.5. АЛГОРИТМ ВЗАИМОСВЯЗЕЙ

Рассмотрим код DMX, создающий структуру интеллектуального анализа и модель, использующую алгоритм Microsoft Association Rules [1]. Обратите внимание, что здесь будут использованы вложенные таблицы, содержащие перечень товаров в заказе (как и в предыдущих примерах, речь идет о данных из базы Adventure Works DW).

CREATE MINING STRUCTURE SalesData ( [Order Number] TEXT KEY,

Products TABLE

( Product TEXT KEY, Category TEXT DISCRETE

)

)

//структура создана

GO

ALTER MINING STRUCTURE SalesData

ADD MINING MODEL Recommendations ( [Order Number],

Products PREDICT ( Product ) )USING

Microsoft_Association_Rules(MINIMUM_SUPPORT=10, MINIMUM_PROBABILITY=0.4)

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

Параметры алгоритма Microsoft Association Rules следующие. MAXIMUM_ITEMSET_COUNT – максимальное количество созда-

ваемых наборов элементов. Значение по умолчанию равно 200000.

101

MAXIMUM_ITEMSET_SIZE – максимальное количество элементов в наборе. Обработка модели прекращается, когда достигнуто предельное значение. 0 указывает, что размер набора элементов не ограничен. Значение по умолчанию равно 3.

MAXIMUM_SUPPORT – максимальное количество вариантов, в которых может поддерживаться набор элементов (формулу расчета поддержки для набора см. в разделе 2.6). Этот параметр используется для исключения элементов, которые появляются слишком часто и поэтому, скорее всего, не имеют значения. Если это значение меньше 1, то оно представляет процент от общего количества вариантов. Значения больше 1 представляют абсолютное количество вариантов, в которых может содержаться набор элементов.

MINIMUM_IMPORTANCE – пороговое значение важности для правил взаимосвязей (формулу расчета значения важности см. в разделе 2.6). Правила, имеющие важность меньше этого значения, отфильтровываются. Доступно только в редакциях SQL Server 2008 Enterprise и Developer.

MINIMUM_ITEMSET_SIZE – минимальное количество элементов, допустимых в наборе. Это полезно, например, если нужно исключить одноэлементные наборы. Значение по умолчанию равно 1.

MINIMUM_PROBABILITY – указывает минимальную вероятность того, что правило верно. Например, задание этого значения равным 0,5 указывает, что правила с вероятностью меньше 50% не формируются. Значение по умолчанию – 0,4.

MINIMUM_SUPPORT – минимальная поддержка, которую набор должен иметь, чтобы классифицироваться как «частый» набор элементов. Значение меньше 1 указывает, что значение указано в процентах от общего количества вариантов. Значение по умолчанию равно 0,03, т.е. набор, встречающийся менее чем в 3% вариантов, не будет включен в модель.

OPTIMIZED_PREDICTION_COUNT – число элементов, которые будут кэшироваться для оптимизации прогноза. Значение по умолча-

102

нию 0. В этом случае алгоритм создает столько прогнозов, сколько требуется в запросе. Если, например, установлено значение 3, то алгоритм помещает в кэш только 3 элемента для прогноза. Дополнительные прогнозы, вероятность которых может быть такой же, что и у 3-х возвращенных элементов, не будут отображаться.

4.6.АЛГОРИТМ КЛАСТЕРИЗАЦИИ ПОСЛЕДОВАТЕЛЬНОСТЕЙ

Рассмотрим фрагмент кода на языке DMX, создающего модель интеллектуального анализа, основанную на алгоритме Microsoft Sequence Clustering [1]. В данном случае задача – анализ последовательностей перехода клиентов по разделам web-сайта. Вариант формируют поля идентификатор клиента (CustomerGuid), информация о его местоположении (GeoLocation), вложенная таблица c идентификатором ссылки в последовательности переходов клиента (SequenceID) и указанием категории ссылки (URLCategory).

CREATE MINING MODEL WebSequence

(

CustomerGuid

TEXT KEY,

GeoLocation TEXT DISCRETE,

ClickPath

TABLE PREDICT

( SequenceID

LONG KEY SEQUENCE,

URLCategory TEXT DISCRETE PREDICT

)

)

USING Microsoft_Sequence_Clustering

После того, как модель создана и обработана, она может использоваться для построения прогнозов. Например, может быть предложено наиболее вероятное продолжение последовательности, начало которой известно.

Для формирования прогноза используется функция PredictSequence(), формат которой предполагает использование

103

разных комбинаций параметров. PredictSequence(<table column reference>), где параметр в скобках – название вложенной таблицы, даст наиболее вероятную последовательность значений.

PredictSequence(<table column reference>, n): пред-

сказание n следующих значений из вложенной таблицы. PredictSequence(<table column reference>, n, m): пред-

сказание значений с n-го по m-е.

Вернувшись к рассмотренному примеру с web-сайтом [1], можно использовать следующий запрос для того, чтобы узнать два наиболее вероятных перехода клиента, который смотрел страницы по темам страхование (англ. insurance), кредиты (англ. loan):

SELECT PredictSequence(ClickPath, 2) AS Sequences FROM WebSequence NATURAL PREDICTION JOIN

(SELECT (SELECT 1 AS SequenceID, 'Insurance' AS URLCategory UNION

SELECT 2 AS SequenceID, 'Loan' AS URLCategory)

AS ClickPath) AS T

Теперь рассмотрим параметры алгоритма, которые можно указать при создании модели.

CLUSTER_COUNT – примерное количество кластеров, создаваемых алгоритмом. Если это число кластеров не может быть построено из имеющихся данных, то алгоритм строит столько кластеров, сколько возможно. Значение 0 приводит к тому, что алгоритм начинает использовать эвристический подход для определения оптимального числа строящихся кластеров. Значение по умолчанию равно 10.

MINIMUM_SUPPORT – минимальное число вариантов, необходимых для построения кластера. Значение по умолчанию равно 10.

MAXIMUM_SEQUENCE_STATES – максимальное количество состояний, которые может иметь последовательность. Значение по умолчанию равно 64.

104

MAXIMUM_STATES – максимальное количество состояний для атрибута не из последовательности, поддерживаемого алгоритмом. Если количество состояний атрибута не из последовательности превышает максимально возможное количество состояний, то алгоритм использует наиболее популярные состояния атрибута и рассматривает остальные состояния как Missing. Значение по умолчанию равно

100.

4.7. АЛГОРИТМЫ НЕЙРОННЫХ СЕТЕЙ И ЛОГИСТИЧЕСКОЙ РЕГРЕССИИ

Как было разобрано в разделе 2.9, алгоритм Microsoft Logistic Regression представляет собой вариант алгоритма Microsoft Neural Network, в котором не используется скрытый слой нейронной сети. Иначе говоря, параметр HIDDEN_NODE_RATIO установлен равным 0 (подробнее о параметре – см. далее).

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

Пример кода DMX, создающего в существующей структуре vTargetMail_structure2 модель на основе нейронных сетей, приведен ниже (подробнее процесс рассматривается в лабораторной работе, описанной в разделе 5.13).

ALTER MINING STRUCTURE [vTargetMail_structure2] ADD MINING MODEL [vTargetMail2_NN]

( [Customer Key],

[Commute Distance], [Age], [Number Cars Owned], [Yearly Income],

[Bike Buyer] PREDICT )

USING Microsoft_Neural_Network

105

Если создается модель на основе алгоритма логистической регрессии, это указывается ключевыми словами USING

Microsoft_Logistic_Regression.

Ниже перечислены параметры алгоритмов. HIDDEN_NODE_RATIO – указывает соотношение числа скры-

тых, входных и выходных нейронов. Следующая формула определяет начальное количество нейронов в скрытом слое:

 

 

 

√(

)

Значение по умолчанию – 4,0. Для алгоритма Microsoft Logistic Regression этот параметр неприменим.

HOLDOUT_PERCENTAGE – процент вариантов в составе обучающих данных, используемых для вычисления ошибки контрольных данных. Значение по умолчанию – 30.

HOLDOUT_SEED – значение, используемое генератором псевдослучайных чисел в качестве начального, когда алгоритм случайным образом отбирает контрольные данные. При установке данного параметра равным 0 (значение по умолчанию), алгоритм формирует начальное значение на основе имени модели интеллектуального анализа данных, что гарантирует неизменность содержимого модели при повторной обработке.

MAXIMUM_INPUT_ATTRIBUTES – максимальное количество входных атрибутов, которое может быть задано для алгоритма до использования процедуры выбора характеристик (для исключения наименее значимых атрибутов). Установка этого значения равным 0 отключает выбор характеристик для входных атрибутов. Значение по умолчанию – 255.

MAXIMUM_OUTPUT_ATTRIBUTES – максимальное количество выходных атрибутов, которое может быть задано для алгоритма до использования выбора характеристик. Установка этого значения равным 0 отключает выбор характеристик для выходных атрибутов. Значение по умолчанию – 255.

106

MAXIMUM_STATES – максимальное число дискретных состояний на один атрибут, поддерживаемое алгоритмом. Если число состояний конкретного атрибута превышает число, указанное для данного параметра, то алгоритм использует наиболее популярные состояния такого атрибута и считает остальные состояния пропущенными. Значение по умолчанию – 100.

SAMPLE_SIZE – верхний предел числа вариантов, которые будут использоваться для обучения модели. Алгоритм использует меньшее из двух значений – либо это число, либо заданный параметром HOLDOUT_PERCENTAGE процент от общего количества вариантов, не включенных в состав контрольных данных. Значение по умол-

чанию – 10000.

Содержимое модели

Содержимое модели, основанной на алгоритме нейронных сетей, нельзя назвать «интуитивно понятным», поэтому остановимся на его рассмотрении более подробно [19].

Рис.4.4. Структура содержимого модели основанной на алгоритме нейронных сетей

Каждая нейронная сеть имеет один родительский узел, представляющий модель и ее метаданные, а также узел граничной статистики (NODE_TYPE = 24), который содержит описательную статистику относительно входных атрибутов. Под этими двумя узлами расположено не менее двух других узлов.

107

Первый узел (NODE_TYPE = 18) всегда представляет верхний узел входного слоя. Под этим верхним узлом находятся входные узлы (NODE_TYPE = 21), которые содержат фактические входные атрибуты и их значения. Пример содержимого узла данного типа представлен на рис.4.5.

Рис.4.5. Содержимое «входного» узла модели В каждом из последующих узлов содержится отдельная подсеть

(NODE_TYPE = 17). Каждая подсеть содержит собственный скрытый слой (NODE_TYPE = 19) и выходной слой (NODE_TYPE = 20).

Каждая подсеть (NODE_TYPE = 17) представляет анализ влияния входного слоя на отдельный прогнозируемый атрибут. Если прогнозируемых выходов несколько, будет создано и несколько подсетей. Скрытый слой каждой подсети содержит несколько скрытых узлов (NODE_TYPE = 22), где содержатся данные о весовых коэффициентах для каждого перехода, завершающегося в данном скрытом узле.

Выходной слой (NODE_TYPE = 20) содержит выходные узлы (NODE_TYPE = 23), где находятся уникальные значения прогнозируемого атрибута. Если прогнозируемый атрибут имеет непрерывный числовой тип данных, то для него будет только один выходной узел.

Описание узлов можно просмотреть с помощью запроса к модели. Ниже приведен код запроса для входных узлов (тип 21), а результат его выполнения представлен на рисунке 4.6.

108

SELECT NODE_DESCRIPTION

FROM [vTargetMail2_NN].CONTENT

WHERE NODE_TYPE = 21

Рис. 4.6.Перечень входных узлов На рисунке 4.7 представлены текст и результат выполнения за-

проса к узлу граничной статистики (тип 24), который позволяет узнать статистику по входным атрибутам.

Рис.4.7. Результат запроса к узлу граничной статистики

109

5.ЛАБОРАТОРНЫЕ РАБОТЫ

5.1.РАБОТА 1. НАДСТРОЙКИ ИНТЕЛЛЕКТУАЛЬНОГО АНАЛИЗА ДАННЫХ ДЛЯ MICROSOFT OFFICE

Один из возможный вариантов проведения интеллектуального анализа данных средствами Microsoft SQL Server 2008 – использование надстроек для пакета Microsoft Office 2007. В этом случае, источником данных для анализа может служить электронная таблица Excel. Данные передаются на SQL Server 2008, там обрабатываются, а результаты возвращаются Excel для отображения.

Для использования подобной «связки», вам должен быть доступен MS SQL Server 2008 в одной из версий, поддерживающих ин-

струменты Data Mining (Enterprise, Developer или c некоторыми ограничениями – Standard), MS Office 2007 в версии Professional или бо-

лее старшей. На момент написания этого материала, надстроек для MS Office 2010 еще не было. Но 32-х разрядная версия Excel 2010 может работать с текущей версией надстроек. В дальнейшем скриншоты будут приводиться именно для сочетания MS Office 2010 и надстроек интеллектуального анализа для Office 2007.

Сами надстройки интеллектуального анализа данных для MS Office 2007 свободно доступны на сайте Microsoft.

Особых сложностей процесс установки надстроек не вызывает. Единственное, что хочется отметить, по умолчанию предлагается устанавливать не все компоненты. Но для выполнения дальнейших лабораторных, лучше сделать полную установку (рис.5.1).

Следующий шаг – конфигурирование MS SQL Server для работы с надстройками. Для этого используется мастер «Приступая к работе» (Getting Started), запускаемый из главного меню (рис.5.2).

Для того, чтобы выполнить конфигурацию MS SQL Server 2008 надо иметь права администратора.

110

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