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

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

Этот раздел посвящен созданию перечисленных запросов для моделей, основанных на алгоритме правил взаимосвязей Майкрософт.

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

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

Получение метаданных из набора строк схемы

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

Получение списка наборов элементов и продуктов

Возвращение первых 10 наборов элементов

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

Предсказание взаимосвязанных элементов

Определение достоверности для связанных наборов элементов

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

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

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

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

SELECT MODEL_CATALOG, MODEL_NAME, NODE_CAPTION, 
NODE_SUPPORT, [CHILDREN_CARDINALITY], NODE_DESCRIPTION
FROM Association.CONTENT
WHERE NODE_TYPE = 1
ПримечаниеПримечание

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

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

MODEL_CATALOG

Проверка взаимосвязи

MODEL_NAME

Взаимосвязь

NODE_CAPTION

Модель ассоциативных правил

NODE_SUPPORT

14879

CHILDREN_CARDINALITY

942

NODE_DESCRIPTION

Модель правил взаимосвязей; ITEMSET_COUNT=679; RULE_COUNT=263; MIN_SUPPORT=14; MAX_SUPPORT=4334; MIN_ITEMSET_SIZE=0; MAX_ITEMSET_SIZE=3; MIN_PROBABILITY=0.400390625; MAX_PROBABILITY=1; MIN_LIFT=0.14309369632511; MAX_LIFT=1.95758227647523

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

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

Образец запроса 2. Получение дополнительных метаданных из набора строк схемы

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

SELECT MODEL_CATALOG, MODEL_NAME, SERVICE_NAME, PREDICTION_ENTITY, 
MINING_STRUCTURE, LAST_PROCESSED
FROM $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'Association'

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

MODEL_CATALOG

База данных AdventureWorks DW

MODEL_NAME

Association

SERVICE_NAME

Модель ассоциативных правил

PREDICTION_ENTITY

v Assoc Seq Line Items

MINING_STRUCTURE

Association

LAST_PROCESSED

29.09.2007 22:21:24

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

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

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

SELECT MINING_PARAMETERS 
from $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'Association'

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

MAXIMUM_ITEMSET_COUNT=200000,MAXIMUM_ITEMSET_SIZE=3,MAXIMUM_SUPPORT=1,MINIMUM_SUPPORT=9.40923449156529E-04,MINIMUM_IMPORTANCE=-999999999,MINIMUM_ITEMSET_SIZE=0,MINIMUM_PROBABILITY=0.4

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

Поиск сведений о правилах и наборах элементов

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

Образец запроса 4. Получение списка наборов элементов и продуктов

Следующий запрос получает все наборы элементов вместе с вложенной таблицей, содержащей товары, включенные в каждый набор элементов. Столбец NODE_NAME содержит уникальный идентификатор набора элементов в данной модели, а NODE_CAPTION — текстовое описание элементов. В данном примере вложенная таблица переведена в плоский формат, так что для набора элементов, содержащего два товара, результаты состоят из двух строк. Ключевое слово FLATTENED можно опустить, если клиент поддерживает иерархические данные.

SELECT FLATTENED NODE_NAME, NODE_CAPTION,
NODE_PROBABILITY, NODE_SUPPORT,
(SELECT ATTRIBUTE_NAME FROM NODE_DISTRIBUTION) as PurchasedProducts
FROM Association.CONTENT
WHERE NODE_TYPE = 7

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

NODE_NAME

37

NODE_CAPTION

Sport-100 = существует

NODE_PROBABILITY

0.291283016331743

NODE_SUPPORT

4334

PURCHASEDPRODUCTS.ATTRIBUTE_NAME

v Assoc Seq Line Items(Sport-100)

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

Образец запроса 5. Возвращение первых 10 наборов элементов

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

SELECT TOP 10 (NODE_SUPPORT),NODE_NAME, NODE_CAPTION
FROM Association.CONTENT
WHERE NODE_TYPE = 7

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

NODE_SUPPORT

4334

NODE_NAME

37

NODE_CAPTION

Sport-100 = существует

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

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

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

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

Образец запроса 6. Предсказание взаимосвязанных элементов

В этом примере используется модель взаимосвязей, созданная при выполнении заданий из учебника по основам интеллектуального анализа данных. В примере показано создание прогнозирующего запроса, который определяет, какие товары рекомендовать клиенту, купившему определенный товар. Тип запроса, в котором модель получает входные данные из инструкции SELECT…UNION, называется одноэлементным. Поскольку прогнозируемый столбец модели, соответствующий новым значениям, представляет собой вложенную таблицу, следует использовать одно предложение SELECT для установления соответствия между новым значением и столбцом вложенной таблицы [Model], а другое предложение SELECT — для установления соответствия между столбцом вложенной таблицы и столбцом уровня вариантов [v Assoc Seq Line Items]. Добавив к запросу ключевое слово INCLUDE-STATISTICS, можно увидеть вероятность и мощность несущего множества для рекомендаций.

SELECT PredictAssociation([Association].[vAssocSeqLineItems],INCLUDE_STATISTICS, 3)
FROM [Association]
NATURAL PREDICTION JOIN 
(SELECT
(SELECT 'Classic Vest' as [Model])
AS [v Assoc Seq Line Items])
AS t

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

Модель

$SUPPORT

$PROBABILITY

$ADJUSTEDPROBABILITY

Sport-100

4334

0.291283

0.252696

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

2866

0.19262

0.175205

Набор обновлений

2113

0.142012

0.132389

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

Образец запроса 7. Определение достоверности для связанных наборов элементов

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

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

SELECT TOP 100 FROM 
(
SELECT FLATTENED NODE_CAPTION, NODE_SUPPORT, 
(SELECT ATTRIBUTE_NAME from NODE_DISTRIBUTION
WHERE ATTRIBUTE_NAME = 'v Assoc Seq Line Items(Water Bottle)') as D
FROM Association.CONTENT
WHERE NODE_TYPE = 7
) AS Items
WHERE [D.ATTRIBUTE_NAME] <> NULL
ORDER BY NODE_SUPPORT DESC

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

NODE_CAPTION

NODE_SUPPORT

D.ATTRIBUTE_NAME

Фляга для воды = имеется

2866

vAssocSeqLineItems(Water Bottle)

Держатель фляги для горного велосипеда = имеется, фляга для воды = имеется

1136

vAssocSeqLineItems(Water Bottle)

Держатель фляги для дорожного велосипеда = имеется, фляга для воды = имеется

1068

vAssocSeqLineItems(Water Bottle)

Фляга для воды = имеется, Sport-100 = имеется

734

vAssocSeqLineItems(Water Bottle)

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

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

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

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