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

SQLServer08_DM_Nesterov

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

ходов. По мере удлинения марковской цепи, размер матрицы растет экспоненциально, соответственно растет и время обработки, что надо учитывать при решении практических задач.

Далее алгоритм изучает различия между всеми возможными последовательностями, чтобы определить, какие последовательности лучше всего использовать в качестве входных данных для кластеризации. Созданный алгоритмом список вероятных последовательностей используется в качестве входных данных для применяемого по умолчанию EM-метода кластеризации (англ. Expectation Maximization, максимизации ожидания, см. раздел 2.5). Целями кластеризации являются как связанные, так и не связанные с последовательностями атрибуты. У каждого кластера есть марковская цепь, представляющая полный набор путей, и матрица, содержащая переходы и вероятности последовательности состояний. На основе начального распределения используется правило Байеса для вычисления вероятности любого атрибута, в том числе – последовательности, в конкретном кластере.

2.8. НЕЙРОННЫЕ СЕТИ

Некоторые задачи интеллектуального анализа данных, в частности, задача классификации, могут решаться с помощью различных алгоритмов. В случае наличия в данных сложных зависимостей между атрибутами, «быстрые» алгоритмы интеллектуального анализа, такие как упрощѐнный алгоритм Байеса, могут давать недостаточно точный результат. Улучшить ситуацию может применение нейросетевых алгоритмов.

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

41

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

(рис.2.9).

Рис.2.9. Пример схемы нейронной сети. Слева направо: входной, скрытый и выходной слой

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

В используемом аналитическими службами SQL Server 2008 алгоритме Microsoft Neural Network, имеющий более двух состояний дискретный входной атрибут модели интеллектуального анализа приводит к созданию одного входного нейрона для каждого состояния и одного входного нейрона для отсутствующего состояния (если обучающие данные содержат какие-либо значения NULL). Непрерывный входной атрибут «создает» два входных нейрона: один нейрон для отсутствующего состояния и один нейрон для значения самого непрерывного атрибута. Входные нейроны обеспечивают входы для одного или нескольких скрытых нейронов.

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

42

рывные прогнозируемые столбцы «создают» два выходных нейрона: один нейрон для отсутствующего или существующего состояния и один нейрон для значения самого непрерывного столбца.

Нейрон получает входы от других нейронов или из других данных, в зависимости от того, в каком слое сети он находится. Входной нейрон получает входы от исходных данных. Скрытые нейроны и выходные нейроны получают входы из выхода других нейронов нейронной сети. Входы устанавливают связи между нейронами, и эти связи являются путем, по которому производится анализ для конкретного набора вариантов.

Каждому входу присвоено значение, именуемое весом, которое описывает релевантность или важность конкретного входа для скрытого или выходного нейрона. Чем больше вес, присвоенный входу, тем более важным является значение этого входа. Значения веса могут быть отрицательными; это означает, что вход может подавлять, а не активировать конкретный нейрон. Чтобы выделить важность входа для конкретного нейрона, значение входа умножается на вес. В случае отрицательных весов умножение значения на вес служит для уменьшения важности входа. Схематично это представлено на рис. 2.10, где xi – вход, wi – соответствующий ему вес.

Рис.2.10 Формальное представление нейрона

Каждому нейрону сопоставлена простая нелинейная функция, называемая функцией активации, которая описывает релевантность или важность определенного нейрона для этого слоя нейронной сети. В качестве функции активации в алгоритме Microsoft Neural Network скрытые нейроны используют функцию гиперболического тангенса

43

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

( )

 

 

 

(2.6)

 

 

( )

 

 

(2.7)

 

 

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

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

1.На начальной стадии случайным образом присваиваются значения всем весам всех входов в сети. Значения обычно берутся из интервала (-1,1).

2.Для каждого обучающего варианта вычисляются выходы.

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

Шаги 2,3 повторяются для всех вариантов, используемых в качестве образцов. После этого, веса в сети обновляются таким образом, чтобы минимизировать ошибки.

В процессе обучения может выполняться несколько итераций. После прекращения роста точности модели обучение завершается.

2.9. ЛОГИСТИЧЕСКАЯ РЕГРЕССИЯ

Логистическая регрессия является известным статистическим методом для определения влияния нескольких факторов на логиче-

44

скую пару результатов. Например, задача может быть следующей. Предположим, что прогнозируемый столбец содержит только два состояния, и необходимо провести регрессионный анализ, сопоставляя входные столбцы с вероятностью того, что прогнозируемый столбец будет содержать конкретное состояние [18]. Результаты, полученные методами линейной и логистической регрессии, представлены на рис. 2.11-a и 2.11-b соответственно. Линейная регрессия не ограничивает значения функции диапазоном от 0 до 1, несмотря на то, что они должны являться минимальным и максимальным значениями этого столбца. Кривая, формируемая алгоритмом логистической регрессии, в этом случае более точно описывает исследуемую характеристику.

a) b)

Рис.2.11. Сравнение результатов, полученных методами линейной (a) и логистической регрессии (b)

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

45

3. ОСНОВНЫЕ КОНСТРУКЦИИ ЯЗЫКА DMX

3.1.БАЗОВЫЕ ПОНЯТИЯ ЯЗЫКА DMX, ТИПЫ ДАННЫХ

ИСОДЕРЖИМОГО

Впредыдущих разделах курса мы познакомились с некоторыми важными понятиями интеллектуального анализа данных. Теперь пришло время собрать их воедино и рассмотреть, как их описание может быть произведено на используемом для запросов к службе Analysis Services языке интеллектуального анализа данных – DMX.

Наименьшей логической единицей работы с данными при интеллектуальном анализе является атрибут, который содержит некоторую «элементарную» информацию об анализируемом примере. Например, возраст клиента. Для алгоритмов DM существует два основных типа атрибутов [1]:

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

- непрерывные числовые атрибуты.

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

буты это специальный вариант категориального типа, полученный из непрерывного путем разбиения на диапазоны. Например, упрощенный алгоритм Байеса не может обрабатывать непрерывные атрибуты, поэтому потребуется дискретизация. Термин «тип содержимого» далее будет использоваться как синоним термина «тип атрибута».

С каждым категориальным атрибутом связан набор его значений (или состояний). Например, атрибут «Город проживания» может принимать значения: «Санкт-Петербург», «Москва» и т.д. На этапах подготовки и изучения данных важно провести анализ множества состояний атрибутов и, при необходимости, внести коррективы.

46

Например, если в одних случаях город записан как «СанктПетербург», а в других «С-Петербург», нужно привести все к единому формату (иначе алгоритм интеллектуального анализа будет рассматривать это как разные состояния). Кроме того, возможно для анализа не нужна столь подобная детализация по городам, а интерес представляет, является ли человек жителем крупного города или нет.

Вслучае аналитических служб Microsoft SQL Server, атрибуты также могут иметь состояния «Missing» и «Existing». Первый указывает на то, что в строке данных атрибут отсутствует (или состояние не определено), второй – что атрибут присутствует.

Вариант определяется как отдельный пример, предоставляемый алгоритму интеллектуального анализа данных [1]. Он состоит из набора атрибутов с соответствующими значениями и во многих случаях описывает объект или событие. Нередко вариант можно представить строкой в таблице, столбцы которой – атрибуты. Пусть, например, решается задача классификации потенциального банковского заемщика при принятии решения о выдаче кредита. В этот случае, вариант содержит известные данные об этом клиенте (размер заработка, профессия, место работы …) и вполне представим в виде строки таблицы.

Вто же время, MS SQL Server и язык DMX позволяют использовать вложенные таблицы, что позволяет описывать более сложные по структуре варианты. Это можно проиллюстрировать на следующем примере [8]. Пусть требуется провести анализ товаров, купленных каждым из клиентов. При этом имеется возможность связать данные о покупках и о покупателе. Исходные данные берутся из двух реляционных таблиц, связанных внешним ключом (рис.3.1): таблица Customers (Заказчики) с полями CustomerKey (Ключ Заказчика), FistName (Имя), LastName (Фамилия), CommuteDistance (Расстояние до работы) и таблица Products (Товары) с полями CustomerKey (внешний ключ, ссылающийся на Customers) и ModelName (Название Модели). Как видно на рисунке, сформированный вариант может содержать

47

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

Рис.3.1. Формирование варианта при использовании вложенных таблиц

Ключ варианта используется для идентификации варианта. Зачастую в этом качестве может использоваться исходный ключ таблицы, из которой берутся данные для анализа. На рисунке 3.1 ключом может выступать столбец CustomerKey.

Вложенный ключ позволяет идентифицировать объект, описываемый во вложенной таблице. В нашем примере это будет название товара (если бы там были еще какие-то атрибуты – цена, цвет и т.д. – они относились бы именно к этому товару).

Атрибут может рассматриваться алгоритмом интеллектуального анализа в качестве входа, выхода или входа и выхода одновременно. Язык DMX позволяет это указать в процессе описания модели. На стадии обучения алгоритму предоставляются как входные, так и выходные данные. На стадии прогнозирования – алгоритм получает входные данные и возвращает выходные.

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

Analysis Services. Сначала определяется источник данных (Data

48

Source), а потом его представление (Data Source View). Представле-

ние источника данных позволяет сочетать различные источники данных и работать с вложенными таблицами. Один из способов определить источник данных – использование соответствующего мастера в среде BI Dev Studio. Более подробно этот вопрос рассматривается в лабораторных работах.

Службы Analysis Services считывают данные из источника в специальный кэш. Помещенные в кэш данные можно сохранить и использовать при создании других моделей интеллектуального анализа или удалить, чтобы освободить место в хранилище.

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

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

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

При создании структуры (или модели одновременно со структурой) в MS SQL Server Analysis Services, необходимо определить типы данных для каждого столбца в структуре [9]. Тип данных сообщает модулю интеллектуального анализа, являются ли данные в источнике числовыми или текстовыми, и как их обрабатывать. Типы данных перечислены в таблице 3.1: текстовый (Text), вещественный числовой (Long), «длинный» вещественный числовой (Double), логический (Boolean) и дата (Date). Они стандартны и в особых комментариях не нуждаются. Единственное, хотелось бы обратить внимание на то, что типов данных в DMX меньше, чем в SQL, и в процессе подготовки данных из реляционных таблиц к анализу, часто производится преобразование к наиболее подходящему типу. Каждый тип данных поддерживает несколько типов содержимого. Задавая тип содержимого, можно настраивать метод, которым данные в столбце обрабатываются (или вычисляются) в модели интеллектуального анализа.

49

 

Таблица 3.1

Типы данных и поддерживаемые типы содержимого

 

 

Тип данных

Поддерживаемые типы содержимого

 

 

Text

Cyclical, Discrete, Key, Key Se-

 

quence, Ordered, Sequence

 

 

Long

Continuous, Cyclical, Discrete,

 

Discretized, Key, Key Sequence,

 

Key Time, Ordered, Sequence, Time

 

Classified

 

 

Boolean

Cyclical, Discrete, Ordered

 

 

Double

Continuous, Cyclical, Discrete,

 

Discretized, Key, Key Sequence,

 

Key Time, Ordered, Sequence, Time

 

Classified

 

 

Date

Continuous, Cyclical, Discrete,

 

Discretized, Key, Key Sequence,

 

Key Time, Ordered

 

 

В таблице 3.1 указано, какие типы содержимого могут соответствовать различным типам данных. Ниже приведены характеристики типов содержимого и указаны основные особенности их использова-

ния [1,9,10].

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

Тип Continuous – непрерывные числовые значения. Иначе говоря, в столбце содержатся значения, которые представляют число-

50

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