Поделиться через


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

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

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

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

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

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

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

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

    Получение первых 10 наборов элементов

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

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

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

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

Все модели интеллектуального анализа данных возвращают содержимое, полученное алгоритмом, в соответствии со стандартизованной схемой — набором строк схемы модели интеллектуального анализа данных. Запросы к набору строк схемы модели интеллектуального анализа данных можно создавать с помощью инструкций расширений интеллектуального анализа данных или с помощью хранимых процедур служб Analysis Services. В SQL Server 2008 наборы строк схемы представлены в виде системных таблиц, что дает возможность выполнять к ним запросы с помощью стандартного синтаксиса Transact-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

Association Test

MODEL_NAME

Association

NODE_CAPTION

Association Rules Model

NODE_SUPPORT

14879

CHILDREN_CARDINALITY

942

NODE_DESCRIPTION

Association Rules Model; 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

Association Rules Model

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 = Existing

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 = Existing

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

Модель правил взаимосвязи часто используют для создания рекомендаций, основанных на выявленной связи между наборами элементов. Поэтому при создании прогнозирующего запроса на основе модели правил взаимосвязи эти правила обычно используются для предсказаний, связанных с новыми данными. Функция 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

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

Model

$SUPPORT

$PROBABILITY

$ADJUSTEDPROBABILITY

Sport-100

4334

0.291283

0.252696

Water Bottle

2866

0.19262

0.175205

Patch kit

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

Water Bottle = Existing

2866

vAssocSeqLineItems(Water Bottle)

Mountain Bottle Cage = Existing, Water Bottle = Existing

1136

vAssocSeqLineItems(Water Bottle)

Road Bottle Cage = Existing, Water Bottle = Existing

1068

vAssocSeqLineItems(Water Bottle)

Water Bottle = Existing, Sport-100 = Existing

734

vAssocSeqLineItems(Water Bottle)

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

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

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

Журнал изменений

Обновленное содержимое

Добавлены ссылки внутри раздела, упрощающие просмотр образцов запросов.