Запрос модели упрощенного алгоритма Байеса (службы Analysis Services — интеллектуальный анализ данных)

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

Запросы содержимого

Получение метаданных модели с помощью расширений интеллектуального анализа данных

Получение сводки обучающих данных

Получение дополнительных сведений об атрибутах

Использование системных хранимых процедур

Прогнозирующие запросы

Прогноз результатов с помощью одноэлементного запроса

Получение прогнозов со значениями вероятности и опорного значения

Прогноз взаимосвязей

Поиск сведений о модели упрощенного алгоритма Бейеса

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

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

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

SELECT MODEL_CATALOG, MODEL_NAME, DATE_CREATED, LAST_PROCESSED,
SERVICE_NAME, PREDICTION_ENTITY, FILTER
FROM $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'TM_NaiveBayes_Filtered'

Образец результатов:

MODEL_CATALOG

AdventureWorks

MODEL_NAME

TM_NaiveBayes_Filtered

DATE_CREATED

3/1/2008 19:15

LAST_PROCESSED

3/2/2008 20:00

SERVICE_NAME

Microsoft_Naive_Bayes

PREDICTION_ENTITY

Покупатель велосипеда, годовой доход

FILTER

[Region] = 'Europe' OR [Region] = 'North America'

Модель, использованная в этом примере, основана на модели упрощенного алгоритма Байеса, созданной в занятии Учебник по основам интеллектуального анализа данных, с некоторыми изменениями: в нее был добавлен второй прогнозируемый атрибут, и к обучающим данным применяется фильтр.

Вернуться в начало

Образец запроса 2. Получение сводки обучающих данных

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

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

SELECT FLATTENED MODEL_NAME,
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE, [SUPPORT], [PROBABILITY], VALUETYPE FROM NODE_DISTRIBUTION) AS t
FROM TM_NaiveBayes.CONTENT
WHERE NODE_TYPE = 26
ПримечаниеПримечание

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

Частичные результаты:

MODEL_NAME

t.ATTRIBUTE_NAME

t.ATTRIBUTE_VALUE

t.SUPPORT

t.PROBABILITY

t.VALUETYPE

TM_NaiveBayes

Bike Buyer

Отсутствует

0

0

1

TM_NaiveBayes

Bike Buyer

0

8869

0.507263784

4

TM_NaiveBayes

Bike Buyer

1

8615

0.492736216

4

TM_NaiveBayes

Gender

Отсутствует

0

0

1

TM_NaiveBayes

Gender

F

8656

0.495081217

4

TM_NaiveBayes

Gender

M

8828

0.504918783

4

Эти результаты, в частности, содержат число обучающих вариантов для каждой дискретной величины (VALUETYPE = 4), а также вычисленную вероятность, скорректированную с поправкой на отсутствующие величины (VALUETYPE = 1).

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

Вернуться в начало

Образец запроса 3. Получение дополнительных сведений об атрибутах

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

Следующий пример показывает, как получить из модели информацию о конкретном атрибуте, Region.

SELECT NODE_TYPE, NODE_CAPTION, 
NODE_PROBABILITY, NODE_SUPPORT, MSOLAP_NODE_SCORE
FROM TM_NaiveBayes.CONTENT
WHERE ATTRIBUTE_NAME = 'Region'

Этот запрос возвращает два типа узлов: узел, представляющий входной атрибут (NODE_TYPE = 10), и узлы для каждого значения атрибута (NODE_TYPE = 11). Для идентификации узла используется его заголовок, а не имя, поскольку заголовок узла содержит как имя атрибута, так и значение атрибута.

NODE_TYPE

NODE_CAPTION

NODE_PROBABILITY

NODE_SUPPORT

MSOLAP_NODE_SCORE

NODE_TYPE

10

Bike Buyer -> Region

1

17484

84.51555875

10

11

Bike Buyer -> Region = Missing

0

0

0

11

11

Bike Buyer -> Region = North America

0.508236102

8886

0

11

11

Bike Buyer -> Region = Pacific

0.193891558

3390

0

11

11

Bike Buyer -> Region = Europe

0.29787234

5208

0

11

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

Следующий запрос возвращает оценки важности всех атрибутов модели:

SELECT NODE_CAPTION, MSOLAP_NODE_SCORE
FROM TM_NaiveBayes.CONTENT
WHERE NODE_TYPE = 10
ORDER BY MSOLAP_NODE_SCORE DESC

Образец результатов:

NODE_CAPTION

MSOLAP_NODE_SCORE

Bike Buyer -> Total Children

181.3654836

Bike Buyer -> Commute Distance

179.8419482

Bike Buyer -> English Education

156.9841928

Bike Buyer -> Number Children At Home

111.8122599

Bike Buyer -> Region

84.51555875

Bike Buyer -> Marital Status

23.13297354

Bike Buyer -> English Occupation

2.832069191

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

Вернуться в начало

Образец запроса 4. Использование системных хранимых процедур

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

CALL GetPredictableAttributes ('TM_NaiveBayes')

Частичные результаты:

ATTRIBUTE_NAME

NODE_UNIQUE_NAME

Bike Buyer

100000001

ПримечаниеПримечание

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

Дополнительные сведения о системных хранимых процедурах служб Analysis Services см. в разделе Хранимые процедуры интеллектуального анализа данных (службы Analysis Services — интеллектуальный анализ данных).

Вернуться в начало

Использование модели упрощенного алгоритма Байеса для создания прогнозов

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

Образец запроса 5. Прогноз результатов с помощью одноэлементного запроса

Следующий запрос использует одноэлементный запрос для получения новой величины и прогнозирования на основании данной модели вероятности приобретения велосипеда клиентом с этими характеристиками. Проще всего создавать одноэлементные запросы на модели регрессии с помощью диалогового окна Ввод одноэлементного запроса. Например, можно построить следующий DMX-запрос, выбрав модель TM_NaiveBayes, затем Одноэлементный запрос, а затем величины из раскрывающихся списков значений [Commute Distance] и Gender.

SELECT
  Predict([TM_NaiveBayes].[Bike Buyer])
FROM
  [TM_NaiveBayes]
NATURAL PREDICTION JOIN
(SELECT '5-10 Miles' AS [Commute Distance],
  'F' AS [Gender]) AS t

Образец результатов:

Expression

0

Прогнозирующая функция вернет наиболее вероятное значение (в данном случае 0; это означает, что клиент такого типа вряд ли приобретет велосипед).

Вернуться в начало

Образец запроса 6. Получение прогнозов со значениями вероятности и опорного значения

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

SELECT
  Predict([TM_NaiveBayes].[Bike Buyer]),
  PredictHistogram([TM_NaiveBayes].[Bike Buyer])
FROM
  [TM_NaiveBayes]
NATURAL PREDICTION JOIN
(SELECT '5-10 Miles' AS [Commute Distance],
  'F' AS [Gender]) AS t

Образец результатов:

Bike Buyer

$SUPPORT

$PROBABILITY

$ADJUSTEDPROBABILITY

$VARIANCE

$STDEV

0

10161.5714

0.581192599

0.010530981

0

0

1

7321.428768

0.418750215

0.008945684

0

0

  

0.999828444

5.72E-05

5.72E-05

0

0

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

Вернуться в начало

Образец запроса 7. Прогноз взаимосвязей

Упрощенный алгоритм Байеса (Майкрософт) можно использовать для анализа взаимосвязей, если структура интеллектуального анализа данных содержит вложенную таблицу с прогнозируемым атрибутом в качестве ключа. Например, можно построить модель упрощенного алгоритма Байеса с помощью структуры интеллектуального анализа данных, созданной в занятии Занятие 3. Построение сценария потребительской корзины (учебник по интеллектуальному анализу данных — средний уровень) учебника по интеллектуальному анализу данных. Модель, использованная в этом примере, была изменена: в ее таблицу вариантов добавлена информация о доходе и географическом положении клиента.

Следующий пример запроса показывает одноэлементный запрос, предсказывающий продукты, связанные с покупкой данного продукта, 'Road Tire Tube'. Эту информацию можно использовать, чтобы рекомендовать продукты определенным типам покупателей.

SELECT   PredictAssociation([Association].[v Assoc Seq Line Items])
FROM [Association_NB]
NATURAL PREDICTION JOIN
(SELECT 'High' AS [Income Group],
  'Europe' AS [Region],
  (SELECT 'Road Tire Tube' AS [Model]) 
AS [v Assoc Seq Line Items]) 
AS t

Частичные результаты:

Model

Женские шорты Mountain

Фляга для воды

Touring-3000

Touring-2000

Touring-1000

Вернуться в начало

Список функций

Все алгоритмы Майкрософт поддерживают общий набор функций. Однако упрощенный алгоритм Байеса (Майкрософт) поддерживает дополнительные функции, список которых приведен в следующей таблице.

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