Примеры запросов модели ассоциаций

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

В этом разделе объясняется, как создать такие типы запросов для моделей, основанных на алгоритме правил ассоциации Майкрософт.

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

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

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

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

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

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

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

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

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

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

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

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

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

SELECT MODEL_CATALOG, MODEL_NAME, NODE_CAPTION,   
NODE_SUPPORT, [CHILDREN_CARDINALITY], NODE_DESCRIPTION  
FROM Association.CONTENT  
WHERE NODE_TYPE = 1  

Замечание

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

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

Каталог моделей Ассоциативный тест
MODEL_NAME Ассоциация
NODE_CAPTION Модель правил ассоциации
поддержка узла 14879
КАРДИНАЛЬНОСТЬ_ДЕТЕЙ 942
ОПИСАНИЕ_УЗЛА Модель правил ассоциации; 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'  

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

Каталог моделей Adventure Works DW Multidimensional 2012
MODEL_NAME Ассоциация
Название_сервиса Модель правил ассоциации
Предсказание_Сущности в Ассоц Послед Позиции Строки
СТРУКТУРА ДЛЯ МАЙНИНГА Ассоциация
ПОСЛЕДНИЙ_ОБРАБОТАННЫЙ 9.29.2007 10:21:24

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

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

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

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

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

MAXIMUM_ITEMSET_COUNT=2000000,MAXIMUM_ITEMSET_SIZE=3,MAXIMUM_SUPPORT=1,MINIMUM_SUPPORT=9.4092349156529E-04,MINIMUM_IMPORTANCE=-999999999999999999,MINIMUM_ITEMSET_SIZE=0,MINIMUM_PROBABILITY=0,4

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

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

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

Пример запроса 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
Заголовок узла Спорт-100 = существующий
УЗЕЛ_ВЕРОЯТНОСТЬ 0.291283016331743
поддержка узла 4334
ПРИОБРЕТЕННЫЕ ПРОДУКТЫ. НАЗВАНИЕ АТРИБУТА v Assoc Seq Line Items(Sport-100)

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

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

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

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

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

поддержка узла 4334
NODE_NAME 37
NODE_CAPTION Спорт-100 = существующий

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

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

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

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

Пример запроса 6. Прогнозирование связанных элементов

В этом примере используется модель сопоставления, созданная в руководстве по интеллектуальному анализу данных промежуточного уровня (службы Analysis Services — интеллектуальное анализ данных). В нем показано, как создать прогнозирующий запрос, который сообщает о том, какие продукты рекомендуется рекомендовать клиенту, который приобрел определенный продукт. Этот тип запроса, где вы предоставляете значения модели в 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  

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

Модель $ПОДДЕРЖКА $PROBABILITY $ADJUSTEDPROBABILITY
Спорт-100 4334 0.291283 0.252696
Бутылка для воды 2866 0.19262 0.175205
Комплект исправлений 2113 0.142012 0.132389

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

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

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

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

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 поддержка узла D.ИМЯ_АТРИБУТА
Бутылка воды = в наличии 2866 V Ассоц Последовательность Строк Позиции (Бутылка для Воды)
Держатель для велосипедной бутылки для горного велосипеда = существующий, Фляга для воды = существующая 1136 v Assoc Seq Line Items(Бутылка воды)
Держатель для бутылки на велосипед = существующий, бутылка воды = существующая 1068 v Ассоц Seq Line Items(бутылка воды)
Бутылка для воды = существующая, Спорт-100 = существующая 734 v Ассоц Секв Строковые Элементы (Бутылка с водой)

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

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

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

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

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

См. также

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