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

SQLServer08_DM_Nesterov

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

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

Алгоритмы интеллектуального анализа данных Microsoft могут работать со следующими типами распределений:

-normal – нормальное на основе значений столбца, содержащего непрерывные данные, может быть построена гистограмма с нормальным Гауссовским распределением;

-log normal логнормальное на основе значений столбца, содержащего непрерывные данные, может быть построена гистограмма с нормально распределенной функцией логарифма значений;

-uniform – равномерное распределение значений столбца (все значения являются равновероятными).

Тип Discretized – указывает на то, что это дискретизованное значение. Дискретизация это процесс распределения значений непрерывного набора данных по сегментам так, чтобы получилось ограниченное число допустимых значений. Дискретизовать можно только числовые данные. Следовательно, дискретизованный тип содержимого показывает, что столбец содержит значения, представляющие группы или сегменты значений, полученных из непрерывного столбца. Сегменты воспринимаются как упорядоченные дискретные значения.

Дискретизацию данных можно провести вручную, чтобы получить необходимые сегменты, либо можно использовать методы дискретизации, предоставляемые службами SQL Server Analysis Services.

Внекоторых алгоритмах дискретизация выполняется автоматически.

51

Для типа содержимого Discretized можно явно указать параметры дискретизации – способ разбиения на сегменты и их число. Способы разбиения могут быть следующими:

-AUTOMATIC (по умолчанию) – службы Analysis Services определяют, какой метод дискретизации использовать;

-EQUAL_AREAS – алгоритм делит данные на группы, содержащие равное число значений;

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

Что касается числа сегментов, то по умолчанию система пытается создать 5 сегментов, а если данных на 5 сегментов не хватает, делается попытка создать меньшее число. При явном задании параметров описание дискретизованного столбца при создании структуры может быть примерно следующим:

[SalaryDisc] LONG DISCRETIZED (EQUAL_AREAS,4)

Тип содержимого Key (ключ) означает, что столбец уникально определяет строку (вариант). Ключ варианта не используется для анализа, а нужен для отслеживания записей.

Вложенные таблицы также имеют ключи, но ключ вложенной таблицы предназначен для других целей. Если столбец вложенной таблицы представляет собой атрибут, который должен быть проанализирован, то для него следует определить тип содержимого Key. Значения в ключе вложенной таблицы должны быть уникальными для каждого варианта, но во всем множестве вариантов могут быть повторяющиеся значения. Например, если анализируются продукты, приобретенные клиентами (рис. 3.1), то для столбца CustomerID в таблице вариантов нужно задать тип содержимого key и задать тип содержимого key для столбца ModelName во вложенной таблице.

Тип содержимого Key Sequence может применяться только в моделях кластеризации последовательностей. Если задан тип содер-

52

жимого Key Sequence, это значит, столбец содержит значения, представляющие последовательность событий. Значения упорядочены, но не должны обязательно находиться на одинаковом расстоянии друг от друга.

Тип содержимого Key Time может применяться только в моделях временных рядов. Если он задан, то это означает, что значения упорядочены и представляют временную шкалу.

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

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

Тип содержимого Cyclical означает, что в столбце содержатся значения, представляющие циклический упорядоченный набор. Например, циклическим упорядоченным набором являются пронумерованные дни недели, поскольку день с номером 1 следует за днем с номером 7. Циклические столбцы атрибутов считаются упорядоченными и дискретными в терминах типов содержимого. Однако большинство алгоритмов обрабатывает циклические значения как дискретные и не выполняет особой обработки.

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

53

ции по шкале от 1 до 5, он не несет сведений о разнице между уровнями квалификации; уровень 5 не обязательно в пять раз лучше уровня 1. Упорядоченные столбцы атрибутов считаются дискретными и большинство алгоритмов так их и обрабатывает.

Классифицированные столбцы (тип Classified) позволяют работать с данными, описывающими другой столбец в модели. В частности, можно задать классифицированный столбец, в котором будут содержаться среднеквадратичные отклонения другого столбца модели, например, столбца с данными о стоимости покупок, совершенных клиентом за календарный год. Тип данных, используемый в классифицированном столбце, должен быть либо Long, либо Double. Ниже описаны допустимые типы содержимого:

-PROBABILITY значение в столбце является вероятностью связанного значения и представлено числом от 0 до 1;

-VARIANCE значение в столбце является отклонением связанного значения;

-STDEV значение в столбце является среднеквадратичным отклонением связанного значения;

-PROBABILITY_VARIANCE значение в столбце является отклонением вероятности для связанного значения;

-PROBABILITY_STDEV значение в столбце является среднеквадратичным отклонением вероятности для связанного значения;

-SUPPORT значение в столбце является весом, коэффициентом репликации объекта, связанного значения.

В MS SQL Server 2008 (2008 R2) встроенные алгоритмы, предоставляемые службами Analysis Services, не поддерживают использование классифицированных столбцов.

Типы содержимого Time и Sequence поддерживаются только алгоритмами сторонних производителей (не Microsoft).

54

3.2.СОЗДАНИЕ СТРУКТУРЫ ИНТЕЛЛЕКТУАЛЬНОГО АНАЛИЗА

Рассмотрим конструкции языка DMX, позволяющие создавать структуры. Для этого используется оператор CREATE MINING STRUCTURE. В обобщенном виде его формат представлен ниже:

CREATE [SESSION] MINING STRUCTURE <structure>

(

[(<column definition list>)]

)

[WITH HOLDOUT (<holdout-specifier> [OR <holdoutspecifier>])]

[REPEATABLE(<holdout seed>)]

где

<holdout-specifier>::=<holdout-maxpercent> PERCENT | <holdout-maxcases> CASES

Приведѐнные в описании атрибуты имеют следующие значе-

ния:

-structure уникальное имя структуры;

-column definition list cписок определений столбцов

сразделителями-запятыми;

-holdout-maxpercent целое число от 1 до 100, которое показывает процентную долю данных, выделяемых для проверки;

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

-holdout seed целое число, которое используется как начальное значение при начале секционирования данных. Если оно равно 0, в качестве начального значения используется хэш идентифи-

55

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

Необязательное ключевое слово SESSION показывает, что структура является временной и ее можно использовать только в течение текущего сеанса работы с SQL Server. После завершения сеанса структура и любые модели на ее основе удаляются. Чтобы создать временные структуры и модели интеллектуального анализа данных, необходимо сначала задать свойство базы данных AllowSessionMiningModels. Надо отметить, что при использовании для анализа инструментов Table Analysis Tools из надстроек интеллектуального анализа данных для Microsoft Excel создаются именно такие структуры. Более подробно этот вопрос рассматривается в лабораторных работах.

Для определения столбца используется следующий формат:

<column name> <data type> [<Distribution>][<Modeling

Flags>]

<Content Type> [<column relationship>]

где обязательно указываются

<column

name> имя столбца,

<data type> тип данных,

<Content

Type> тип содержимо-

го. Необязательные параметры, к которым относится

<Distribution> распределение, <Modeling Flags> список флагов моделирования, <column relationship> связь со столбцом атрибутов (обязательна, только если применима; определяется предложением RELATED TO), будут рассмотрены ниже.

Для определения столбца с вложенной таблицей используется следующий синтаксис:

<column name> TABLE (<column definition list>)

В качестве примера рассмотрим создание структуры интеллектуального анализа данных с именем New Mailing, включающей четыре столбца: идентификатор клиента CustomerKey, пол клиента Gender, число машин Number Cars Owned, признак покупки ве-

56

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

CREATE MINING STRUCTURE [New Mailing]

(

CustomerKey LONG KEY,

Gender TEXT DISCRETE,

[Number Cars Owned] LONG DISCRETE, [Bike Buyer] LONG DISCRETE

)

WITH HOLDOUT(25 PERCENT) REPEATABLE(5000)

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

CREATE MINING STRUCTURE [New Mailing1]

(

CustomerKey LONG KEY,

Gender TEXT DISCRETE,

[Number Cars Owned] LONG DISCRETE, [Bike Buyer] LONG DISCRETE, [Goods] TABLE

(

[Product] TEXT KEY, [Quantity] LONG CONTINUOUS

)

)

57

WITH HOLDOUT(25 PERCENT)

Теперь вспомним о дополнительных флагах. Флаг Distribution позволяет указать на распределение для столбца с числовым значением (этот вопрос разбирался в предыдущем разделе). Допусти-

мые значения – NORMAL, Log Normal, UNIFORM.

Флаги моделирования Modeling Flags можно использовать для указания дополнительных сведений о соответствующем атрибуте. Алгоритм может их использовать для создания более точной модели интеллектуального анализа данных. Некоторые флаги могут быть определены на уровне структуры, другие на уровне столбца модели интеллектуального анализа. К флагам относятся:

-NOT NULL указывает, что значения столбца атрибутов не должны включать значение NULL («не определено»). Если службы Analysis Services найдут значение NULL в данном столбце атрибутов в процессе обучения модели, то будет выдана ошибка. Задается на уровне структуры;

-MODEL_EXISTENCE_ONLY указывает, что столбец должен рассматриваться как имеющий два состояния: Missing и Existing. Если значение атрибута – NULL, оно рассматривается как отсутствующее (Missing), в противном случае – Existing. Флаг задается на уровне модели;

-REGRESSOR указание для алгоритма регрессии относительно того, что столбец нужно использовать в качестве регрессора (более подробно – см. разделы, посвященные алгоритмам регрессии).

К любому определению столбца можно добавить предложение, описывающее связь между двумя столбцами. Делается это с помощью ключевого слова RELATED TO, что показывает иерархию значений. Назначением столбца RELATED TO может быть ключевой столбец вложенной таблицы, столбец с дискретными значениями из строки вариантов или какой-либо другой столбец с предложением RELATED TO, указывающим на более глубокий уровень иерархии.

58

3.3. СОЗДАНИЕ МОДЕЛИ ИНТЕЛЛЕКТУАЛЬНОГО АНАЛИЗА ДАННЫХ

Создание модели интеллектуального анализа данных можно осуществить одним из следующих способов:

1) после создания структуры интеллектуального анализа данных можно добавлять в нее модели с помощью инструкции ALTER MINING STRUCTURE;

2) можно использовать инструкцию CREATE MINING MODEL, в результате выполнения которой создается модель и автоматически формируется лежащая в ее основе структура интеллектуального анализа данных. Имя структуры интеллектуального анализа данных формируется путем добавления строки «_structure» к имени модели.

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

ALTER MINING STRUCTURE <structure> ADD MINING MODEL <model>

(

<column definition list>

[(<nested column definition list>) [WITH FILTER (<nested filter criteria>)]]

)

USING <algorithm> [(<parameter list>)] [WITH DRILLTHROUGH]

[,FILTER(<filter criteria>)]

где structure имя структуры интеллектуального анализа данных, к которой будет добавлена модель;

model уникальное имя модели интеллектуального анализа данных; column definition list список определений столбцов с раз- делителями-запятыми;

59

nested column definition list cписок с разделителями-

запятыми столбцов вложенной таблицы (если применимо);

nested filter criteria определение фильтра, применяющегося к столбцам вложенной таблицы;

algorithm название используемого моделью алгоритма интеллектуального анализа данных;

parameter list cписок параметров алгоритма (через запятую); filter criteria определение фильтра, применяющегося к столбцам таблицы вариантов.

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

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

ALTER MINING STRUCTURE [New Mailing] ADD MINING MODEL [MyCluster1]

USING Microsoft_Clustering

В общем случае, определение столбца выполняется в соответствии со следующим форматом:

<structure column name> [AS <model column name>] [<modeling flags>] [<prediction>]

где structure column name имя столбца в соответствии с определением структуры;

model column name псевдоним (необязательный параметр, позволяющий в модели использовать название, отличное от использованного в структуре);

modeling flags флаги моделирования, о которых говорилось выше: значение REGRESSOR указывает, что алгоритм регрессии мо-

60

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