Примеры наивных примеров запросов модели Bayes

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

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

Получение метаданных модели с помощью dmX

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

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

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

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

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

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

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

Поиск сведений о наивной модели Bayes

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

Пример запроса 1. Получение метаданных модели с помощью dmX

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

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'  

Пример результатов:

Каталог моделей AdventureWorks
MODEL_NAME TM_NaiveBayes_Filtered
ДАТА_СОЗДАНИЯ 3/1/2008 19:15
ПОСЛЕДНИЙ_ОБРАБОТАННЫЙ 3/2/2008 20:00
Название_сервиса Microsoft_Naive_Bayes
PREDICTION_ENTITY Покупатель велосипедов, годовой доход
ФИЛЬТР [Регион] = "Европа" ИЛИ [Регион] = "Северная Америка"

Модель, используемая для этого примера, основана на модели Naive Bayes, созданной в учебнике по интеллектуальному анализу данных basic, но была изменена путем добавления второго прогнозируемого атрибута и применения фильтра к данным обучения.

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

В наивной модели Bayes узел маргинальной статистики хранит агрегированные сведения о распределении значений в обучающих данных. Эта сводка удобна и избавляет вас от необходимости создавать 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.ВЕРОЯТНОСТЬ t.VALUETYPE
TM_NaiveBayes Покупатель велосипедов Отсутствует 0 0 1
TM_NaiveBayes Покупатель велосипедов 0 8869 0.507263784 4
TM_НаивныйБайес Покупатель велосипедов 1 8615 0.492736216 4
TM_Наивный Байес Пол Отсутствует 0 0 1
TM_Наивный Байес Пол Ф 8656 0.495081217 4
TM_NaiveBayes Пол M 8828 0.504918783 4

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

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

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

Поскольку модель Наивного Байеса часто содержит сложную информацию о отношениях между различными атрибутами, самый простой способ просмотра этих связей — использовать Microsoft Naive Bayes Viewer. Однако можно создать 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_CAPTION УЗЕЛ_ВЕРОЯТНОСТЬ поддержка узла MSOLAP_NODE_SCORE ТИП_УЗЛА
10 Покупатель велосипедов -> Регион 1 17484 84.51555875 10
11 Покупатель велосипедов -> Регион = отсутствующий 0 0 0 11
11 Покупатель велосипедов -> Регион = Северная Америка 0.508236102 8886 0 11
11 Покупатель велосипедов -> Регион = Тихоокеанский 0.193891558 3390 0 11
11 Покупатель велосипедов -> Регион = Европа 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
Вело-покупатель -> Общее количество детей 181.3654836
Покупатель велосипедов -> Расстояние для поездок на работу 179.8419482
Покупатель велосипедов -> образование на английском языке 156.9841928
Покупатель велосипедов -> количество детей дома 111,8122599
Покупатель велосипедов -> Регион 84.51555875
Покупатель велосипедов -> Семейное состояние 23.13297354
Покупатель велосипедов -> английская профессия 2.832069191

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

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

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

CALL GetPredictableAttributes ('TM_NaiveBayes')  

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

ИМЯ_АТРИБУТА NODE_UNIQUE_NAME
Покупатель велосипедов 100000001

Замечание

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

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

Использование наивной модели Bayes для прогнозирования

Алгоритм Microsoft Naive Bayes обычно используется меньше для прогнозирования, чем для изучения связей между входными и прогнозируемыми атрибутами. Однако модель поддерживает использование функций прогнозирования как для прогнозирования, так и для сопоставления.

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

Следующий запрос использует одиночный запрос для предоставления нового значения и прогнозирования на основе модели, может ли клиент с этими характеристиками приобрести велосипед. Самый простой способ создать однотонный запрос в модели регрессии — использовать диалоговое окно "Входные данные однотонного запроса ". Например, вы можете создать следующий DMX-запрос, выбрав модель TM_NaiveBayes, выбрав запрос Singleton и выбрав значения из раскрывающихся списков для [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  

Пример результатов:

Выражение
0

Функция прогнозирования возвращает наиболее вероятное значение, в данном случае 0, что означает, что этот тип клиента вряд ли приобретет велосипед.

Пример запроса 6: Получение прогнозов с учетом вероятности и значений поддержки

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

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  

Пример результатов:

Покупатель велосипедов $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY $ОВАРИАЦИЯ $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, так как модели Naive Bayes не могут моделировать непрерывные значения.

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

Алгоритм Microsoft Naive Bayes можно использовать для ассоциативного анализа, если структура данных содержит вложенную таблицу с прогнозируемым атрибутом в качестве ключа. Например, можно создать наивную модель Байеса с помощью структуры интеллектуального анализа данных, созданной в уроке 3: Создание сценария корзины рынка (учебник по интеллектуальному анализу данных средней сложности) учебника по интеллектуальному анализу данных. Модель, используемая в этом примере, была изменена для добавления сведений о доходах и регионе клиента в таблице вариантов.

В следующем примере показан запрос типа "singleton", который предсказывает продукты, связанные с покупками продукта '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  

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

Модель
Женские горные шорты
Бутылка для воды
Туринг-3000
Туринг-2000
Туринг-1000

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

Все алгоритмы Майкрософт поддерживают общий набор функций. Однако алгоритм Microsoft Naive Bayes поддерживает дополнительные функции, перечисленные в следующей таблице.

Функция прогнозирования Использование
IsDescendant (DMX) Определяет, является ли один узел дочерним элементом другого узла в модели.
Прогнозирование (DMX) Возвращает прогнозируемое значение или набор значений для указанного столбца.
PredictAdjustedProbability (DMX) Возвращает взвешированную вероятность.
PredictAssociation (DMX) Прогнозирование членства в ассоциативном наборе данных.
PredictNodeId (DMX) Возвращает Node_ID для каждого случая.
PredictProbability (DMX) Возвращает вероятность прогнозируемого значения.
PredictSupport (DMX) Возвращает значение поддержки для указанного состояния.

Сведения о синтаксисе конкретных функций приведены в справочнике функций расширения DMX (Data Mining Extensions).

См. также

Технический справочник по наивному алгоритму Байеса
Алгоритм Microsoft Naive Bayes
Содержимое модели интеллектуального анализа для моделей Наивного Байеса (Analysis Services — интеллектуальный анализ)