Главная » Microsoft SQL Server, Базы данных » Процесс раскрытия данных – ЧАСТЬ 3

0

Развертывание

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

?               Непосредственное создание XMLA, взаимодействующего со службой анализа с помощью протокола SOAP. Это позволяет использовать полную функциональность раскрытия данных ценой углубленного программирования.

?               Объектная модель AMO (Analysis Management Objects) реализует среду создания и управления структурами раскрытия и прочими метаданными; однако она не предназначена для запросов прогнозирования.

?               Язык DMX (Data Mining Extensions) позволяет реализовать большинство задач создания модели и ее обучения, а также выполнять запросы прогнозирования. Инструкции DMX могут быть отправлены службе анализах помощью следующих интерфейсов:

•           AMOMD.NET — для управляемых языков (семейства .NET);

•           OLE DB — для программ на C++;

•           ADO — для остальных языков программирования.

DMX представляет собой SQL-подобный язык, адаптированный к задачам и структурам раскрытия данных. С целью выполнения запросов прогнозирования относительно обучаемой модели в языке предусмотрено специальное объединение прогнозирования (PREDICTION JOIN). Как будет показано в следующем примере, этот тип объединения связывает модель раскрытия и набор данных, которые должны предсказываться. Так как запрос DMX выполняется относительно базы данных службы анализа, на модель [ТМ Decision Tree] можно сослаться напрямую, в то время как состояния должны быть собраны с помощью выполнения функции OPENQUERY относительно реляционной базы данных. Соответствующие столбцы сравниваются в предложении ON, подобно стандартному реляционному объединению, в то время как предложения WHERE и ORDER BY функционируют, как обычно. В язык DMX также добавлено множество специализированных функций, предназначенных для задач раскрытия данных, таких как Predict и PredictProbability (эти функции продемонстрированы в примере), которые возвращают соответственно наиболее вероятный выход и его вероятность. В целом в приведенном примере возвращается список идентификаторов, имен и вероятностей потенциальных клиентов, которые с более чем 60%-ной вероятностью купят велосипед, с сортировкой по убыванию вероятности:

SELECT t.ProspectAlternateKey,t.FirstName,t.LastName,

Predict([TM Decision Tree].[Bike Buyer]),

PredictProbability([TM Decision Tree].[Bike Buyer]) as Prob FROM [TM Decision Tree]

PREDICTION JOIN

OPENQUERY([Adventure Works DW],

‘SELECT

ProspectAlternateKey, FirstName, LastName, MaritalStatus,

Gender, Yearlylncome, TotalChildren, NumberChildrenAtHome, Education, Occupation, HouseOwnerFlag, NumberCarsOwned, StateProvinceCode FROM dbo.ProspectiveBuyer1) AS t

ON

[TM Decision Tree].[Marital Status] = t.MaritalStatus AND [TM Decision Tree].Gender = t.Gender AND [TM Decision Tree].[Yearly Income] = t.Yearlylncome AND [TM Decision Tree].[Total Children] = t.TotalChildren AND [TM Decision Tree].[Number Children At Home] t.NumberChildrenAtHome AND [TM Decision Tree].Education = t.Education AND [TM Decision Tree].Occupation = t.Occupation AND [TM Decision Tree].[House Owner Flag] = t.HouseOwnerFlag AND [TM Decision Tree].[Number Cars Owned] = t.NumberCarsOwned AND [TM Decision Tree].Region = t.StateProvinceCode WHERE PredictProbability([TM Decision Tree].[Bike Buyer]) > 0.60 AND Predict([TM Decision Tree].[Bike Buyer])=1 ORDER BY PredictProbability([TM Decision Tree].[Bike Buyer]) DESC

Еще одной полезной формой объединения прогнозирования является одиночный запрос, в котором данные поставляются непосредственно приложением, а не читаются из реляционной таблицы. Эта форма продемонстрирована в следующем примере. Так как имена в точности совпадают с теми, которые используются в модели раскрытия, в примере использовано выражение NATURAL PREDICTION JOIN, не требующее наличия предложения ON. Этот пример возвращает вероятность того, что заданный потенциальный клиент купит велосипед (т.е. [Вуке Вуег] =1): SELECT

PredictProbability([TM Decision Tree].[Bike Buyer],1)

FROM [TM Decision Tree]

NATURAL PREDICTION JOIN

(SELECT 47 AS [Age], ‘2-5 Miles’ AS [Commute Distance],

‘Graduate Degree1 AS [Education], ‘M’ AS [Gender],

*1′ AS [House Owner Flag], ‘M’ AS [Marital Status],

2 AS [Number Cars Owned], 0 AS [Number Children At Home],

‘Professional’ AS [Occupation], ‘North America’ AS [Region],

0 AS [Total Children], 80000 AS [Yearly Income]) AS t

Утилита BIDS окажет вам помощь в создании запросов DMX посредством построителя запросов, содержащегося в представлении Mining Model Prediction. Как в диаграмме точности раскрытия, выделите модель и таблицу, к которым будет выполняться запрос, или щелкните на единственной кнопке панели инструментов, чтобы установить значения. В нижней части таблицы определите столбец SELECT и функции прогнозирования. SQL Server Management Studio также предлагает тип запросов DMX с панелью метаданных, предназначенной для перетаскивания имен столбцов структуры раскрытия и функций прогнозирования.

Среди доступных функций прогнозирования следующие.

?               Predict. Возвращает ожидаемый выход прогнозируемого столбца.

?               PredictProbability. Возвращает вероятность ожидаемого выхода или особое состояние, если такое определено.

?               Predict Support. Возвращает количество состояний обучения, на которых основан ожидаемый выход, или специальное состояние, если такое определено.

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

?               Cluster. Возвращает кластер, которому назначено данное состояние (функция специфична для алгоритма кластеризации).

?               ClusterProbability. Возвращает вероятность того, что состояние принадлежит заданному кластеру (функция специфична для алгоритма кластеризации).

?               PredictSequence. Прогнозирование следующего значения в последовательности (функция специфична для алгоритма последовательной кластеризации).

?               PredictAssociations. Прогнозирование ассоциативного членства (функция специфична для алгоритма ассоциаций).

?               PredictTimeSeries. Прогнозирование будущего значения временного ряда (функция специфична для алгоритма временных рядов).

Алгоритмы

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

Таблица 44.2. Использование основных алгоритмов раскрытия данных

Тип задач

Основные алгоритмы

Сегментация

Классификация

Ассоциация

Оценка

Прогнозирование

Кластеризация, последовательная кластеризация

Деревья решений, наивный Байесовский, нейронные сети, логистическая регрессия Ассоциативные правила, деревья решений

Деревья решений, линейная регрессия, логистическая регрессия, нейронные сети Временные ряды

Тип задач

Основные алгоритмы

Последовательный

Последовательная кластеризация

анализ

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

Алгоритм дерева решений

Алгоритм Decision Trees является наиболее точным для множества задач. Он начинает свою работу с создания узла АН, соответствующего всем учебным состояниям (рис. 44.3). Затем выбирается атрибут, наилучшим образом разбивающий состояния на группы, после чего в каждой из получившихся групп также выполняется поиск атрибута, наилучшим образом выполняющего разбиение подмножеств, и т.д. Целью работы алгоритма является создание листовых узлов с единственным прогнозируемым выходом. Например, если задача сводится к определению покупателей, потенциально мотивированных купить велосипед, листовой уровень будет содержать либо всех потенциальных покупателей велосипедов, либо всех, кто не способен купить велосипед, однако ни в коем случае не их комбинацию.

Puc. 44.3. Представление Decision Tree Viewer

Представление Decision Tree Viewer, показанное на рис. 44.3, графически отображает результирующее дерево. Как мы видим, в данном примере первым выбранным атрибутом стал возраст (группы “до 31 года”, “от 31 до 38” и т.д.). В группе “до 31 года” решающим оказался атрибут региона, в то время как в группе “от 31 до 38” — количество приобретенных автомобилей. На панели Mining Legend отображаются детали выбранного узла, включая то, как выборки были разбиты переменной прогнозирования (в данном случае 2 200 покупателей и 1 306 воздержавшихся от покупки) как по количеству, так и по вероятности.

Для деревьев решений также доступно представление Dependency Network Viewer, отображающее входные и прогнозируемые столбцы в качестве узлов, которые соединены стрелками, определяющими отношения между предсказывающим и прогнозируемым элементами. Переместите ползунок вниз, и вы увидите наиболее значимые предсказания. Щелкните на любом узле, чтобы выделить все его взаимосвязи.

Линейная регрессия

Алгоритм Linear Regression реализован как один из вариантов дерева решений. Он является наилучшим выбором для непрерывных данных, связь между которыми близка к линейной. Результатом регрессии является уравнение вида:

Puc. 44.5. Представление Neural Network Viewer

Логистическая регрессия

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

Поскольку данный алгоритм управляется алгоритмом нейронных сетей, ему доступно то же представление (Neural Network Viewer).

Наивный Байесовский алгоритм

Алгоритм Naive Bayes является очень быстрым, к тому же его точность вполне адекватна для многих приложений. В то же время он не способен оперировать непрерывными переменными. Источником его “наивности” является предположение о независимости всех входных сигналов. Например, вероятность того, что женатый человек купит велосипед, определяется вычислением частоты появления комбинаций этих двух признаков в учебном наборе данных; при этом остальные столбцы в расчет не принимаются. Вероятностью нового состояния является нормализованное произведение отдельных вероятностей.

Для построенной модели доступно несколько представлений.

?               Dependency Network. В этом представлении в качестве узлов отображаются входные и прогнозируемые столбцы, а стрелки указывают на то, на основе которого из них составляется прогноз. Переместите ползунок вниз, чтобы отобразить только самые существенные основы прогноза. Щелкните на узле, чтобы выделить все его отношения.

?               Attribute Profile. Это представление функционально идентично представлению Cluster Profile Viewer. В нем отображаются все переменные и прогнозируемые результаты в виде одной матрицы. Каждая ячейка матрицы является графическим представлением распределения переменной в конкретном выходном сигнале. Щелкните на ячейке, и на панели Mining Legend отобразятся все характеристики распределения для данной комбинации “выход/переменная”. Если поместить указатель мыши над некоторой ячейкой, то вся эта информация отобразится в экранной подсказке.

?               Atribute Characteristics. Это представление отображает список характеристик, связанных с выбранным результатом.

?               Atribute Discrimination. Аналогично представлению Characteristic Viewer, однако показывает, какие характеристики отличают один результат от другого.

Ассоциативные правила

Работа алгоритма Association Rules заключается в поиске атрибутов, которые имеют свойство появляться вместе в определенных состояниях; при этом в расчет берется достаточная частота таких событий. Такие атрибуты группируются в так называемые наборы элементов, которые затем используются для создания правил генерации прогнозов. Несмотря на то что данный алгоритм может быть использован во многих задачах, лучше всего он подходит к задаче формирования рыночного портфеля. В общем случае данные для формирования рыночного портфеля подготавливаются с использованием вложенных таблиц — родительская строка является транзакцией (например, заказом), а вложенные таблицы содержат отдельные ее элементы (например, строки заказа). Три представления позволяют проанализировать обученную модель.

?               Itemsets. Это представление отображает список наборов элементов, раскрытых в учебных данных; при этом для каждого набора данных указывается его ассоциированный размер (количество элементов в наборе) и поддержка (количество учебных состояний, в которых это множество появляется). В представлении содержатся некоторые элементы фильтрации, в том числе текстовое поле Filter Itemset, с помощью которой можно выполнить поиск любой введенной строки (например, "Region=Europe" позволит отобразить только наборы элементов, содержащие эту строку).

?               Rules. По составу и композиции элементов это представление аналогично Itemsets, однако перечисляет не наборы элементов, а правила. Каждое правило имеет форму А, В^С, а это означает, что состояния, содержащие правила А и В, вероятнее всего, содержат и С (например, люди, купившие макароны и соус, скорее всего, купят и сыр). В каждом из правил указывается его вероятность появления, а также важность (т.е. мера полезности) для выполнения прогнозов.

?               Dependency Network. Это представление аналогично одноименному представлению в других алгоритмах; в нем узлы представляют элементы в анализе рыночного портфеля. Следует отметить, что эти узлы склонны влиять на предсказание друг друга (отмечается двунаправленными стрелками). Ползунок позволяет скрывать менее вероятные (но не менее важные) ассоциации. Если выделить некоторый узел, будут выделены также и связанные с ним узлы.

Временные ряды

Алгоритм Time Series позволяет предсказать будущие значения ряда последовательных точек данных (например, Web-трафик на следующее полугодие на основании исторических данных). В отличие от ранее описанных алгоритмов прогноз не требует наличия новых состояний, на которых он будет основан, — нужно лишь указать количество итераций, на которое следует удлинить ряд. Входные данные должны содержать временной ключ для обеспечения временного атрибута алгоритма. Временные ключи могут определяться с помощью дат, а также числовых столбцов с типом double и long.

После запуска алгоритма генерируется дерево решений для каждого прогнозируемого ряда. Это дерево решений определяет одну или несколько областей в прогнозировании, а для каждой из них — соответствующее уравнение, которое можно увидеть в представлении Decision Тгее Viewer. Например, если некоторый узел имеет метку Widget. Sales-4<1000 0, ее можно интерпретировать следующим образом: “Использовать уравнение этого узла, когда объем продаж данного товара четырьмя этапами ранее был меньше десяти тысяч рублей”. При выборе узла на панели Mining Legend отображается связанное с ним уравнение, а если поместить над узлом указатель мыши, то это же уравнение отобразится в экранной подсказке. Обратите внимание на раскрывающийся список Tree в верхней части представления. Он позволяет проверять модель на разных временных рядах. В каждом узле также отображается ромбовидная диаграмма, ширина которой отражает вариации прогнозируемого атрибута в данном узле. Другими словами, чем уже ромбик, тем точнее прогноз.

Второе представление, Charts, используемое в данном алгоритме, выводит на график фактические и прогнозируемые значения выбранного ряда в разрезе времени. Выберите в раскрывающемся списке в верхнем правом углу графика ряд, который следует вывести на диаграмму. Кнопка Abs используется для переключения между абсолютными и относительными (т.е. процентными) значениями. Флажок Show Deviations управляет отображением на диаграмме графика ошибок, показывающего отклонения прогнозируемых значений, а элемент Prediction Steps позволяет управлять количеством отображаемых прогнозов. Поместите указатель мыши над горизонтальным фрагментом, который вас интересует, так, чтобы он стал выделенным, а затем щелкните мышью — данный фрагмент диаграммы будет увеличен. Отмена масштабирования выполняется с помощью соответствующих кнопок масштабирования на панели инструментов.

Так как прогнозирование не основано на состояниях, представление Mining Accuracy Chart для данного алгоритма не работает. Поэтому вам следует вывести значения последующих периодов из учебных данных и сравнить предсказанные значения с результатами, полученными на тестовых данных.

Источник: Нильсен, Пол. Microsoft SQL Server 2005. Библия пользователя. : Пер. с англ. — М. : ООО “И.Д. Вильямс”, 2008. — 1232 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии