Consultando um modelo de associação (Analysis Services - Mineração de dados)
Ao criar uma consulta para um modelo de mineração de dados, você pode criar uma consulta de conteúdo, que fornece detalhes sobre as regras e os conjuntos de itens descobertos durante a análise ou pode criar uma consulta de previsão, que usa as associações descobertas nos dados para fazer previsões. Para um modelo de associação, normalmente, as previsões baseiam-se em regras e pode ser usadas para fazer recomendações, enquanto as consultas em conteúdo geralmente exploram a relação entre os conjuntos de itens. Você também pode recuperar metadados sobre o modelo.
Esta seção explica como criar os tipos de consultas a seguir para modelos que se baseiam no algoritmo Regras de Associação da Microsoft.
Consultas de conteúdo
Obtendo metadados do modelo usando DMX
Obtendo metadados do conjunto de linhas de esquema
Recuperando uma lista de conjuntos de itens e produtos
Recuperando parâmetros de modelo
Recuperando os 10 principais conjuntos de itens
Consultas de previsão
Prevendo itens associados
Determinando a confiança dos conjuntos de itens relacionados
Localizando informações sobre o modelo
Todos os modelos de mineração expõem o conteúdo captado pelo algoritmo de acordo com um esquema padronizado, o conjunto de linhas de esquema de modelo de mineração. Você pode criar consultas para o conjunto de linhas do esquema do modelo de mineração usando instruções DMX (Data Mining Extensions) ou procedimentos armazenados do Analysis Services. No SQL Server 2008, os conjuntos de linhas do esquema são exibidos como tabelas do sistema, para que você possa consultá-las usando uma sintaxe como a Transact-SQL.
Voltar ao início
Exemplo de consulta 1: Obtendo metadados do modelo usando DMX
A consulta a seguir retorna os metadados básicos sobre o modelo de associação, Association, como o nome do modelo, o banco de dados onde o modelo é armazenado e o número de nós filho do modelo. Esta consulta usa uma consulta de conteúdo DMX para recuperar os metadados do nó pai do modelo:
SELECT MODEL_CATALOG, MODEL_NAME, NODE_CAPTION,
NODE_SUPPORT, [CHILDREN_CARDINALITY], NODE_DESCRIPTION
FROM Association.CONTENT
WHERE NODE_TYPE = 1
Observação |
---|
É necessário colocar o nome da coluna, CHILDREN_CARDINALITY, entre colchetes para diferenciá-lo da palavra-chave reservada MDX do mesmo nome. |
Resultados do exemplo:
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 |
Para obter uma definição do que essas colunas significam em um modelo de associação, consulte Conteúdo do modelo de mineração para modelos de associação (Analysis Services – Mineração de Dados).
Voltar ao início
Exemplo de consulta 2: Obtendo metadados adicionais a partir do conjunto de linhas de esquema
É possível consultar o conjunto de linhas de esquema de mineração de dados para encontrar as mesmas informações retornadas em uma consulta de conteúdo DMX. No entanto, o conjunto de linhas de esquema fornece algumas colunas adicionais, como a data em que o modelo foi processado, a estrutura de mineração e o nome da coluna usada como atributo previsível.
SELECT MODEL_CATALOG, MODEL_NAME, SERVICE_NAME, PREDICTION_ENTITY,
MINING_STRUCTURE, LAST_PROCESSED
FROM $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'Association'
Resultados do exemplo:
MODEL_CATALOG |
AdventureWorks DW |
MODEL_NAME |
Association |
SERVICE_NAME |
Association Rules Model |
PREDICTION_ENTITY |
v Assoc Seq Line Items |
MINING_STRUCTURE |
Association |
LAST_PROCESSED |
9/29/2007 10:21:24 PM |
Voltar ao início
Exemplo de consulta 3: Recuperando parâmetros originais do modelo
A consulta a seguir retorna uma única coluna que contém detalhes sobre as configurações de parâmetros que foram usados na criação do modelo.
SELECT MINING_PARAMETERS
from $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'Association'
Resultados do exemplo:
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
Localizando informações sobre regras e conjuntos de itens
Existem dois usos comuns para um modelo de associação: descobrir informações sobre conjuntos de itens freqüentes e extrair detalhes sobre regras e conjuntos de itens em particular. Por exemplo, convém extrair uma lista de regras cuja pontuação indicou serem especialmente interessantes ou criar uma lista dos conjuntos de itens mais comuns. Para recuperar essas informações, use uma consulta de conteúdo DMX. Você também procura essas informações usando o Visualizador de Associação da Microsoft.
Voltar ao início
Exemplo de consulta 4: Recuperando uma lista de conjuntos de itens e produtos
A consulta a seguir recupera todos os conjuntos de itens, junto com uma tabela aninhada que lista os produtos incluídos em cada conjunto de itens. A coluna NODE_NAME contém a ID exclusiva do conjunto de itens do modelo, enquanto NODE_CAPTION fornece um texto que descreve os itens. Nesse exemplo, a tabela aninhada é simplificada, de modo que o conjunto de itens que contém dois produtos irá gerar duas linhas nos resultados. É possível omitir a palavra-chave FLATTENED se o cliente oferecer suporte a dados hierárquicos.
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
Resultados do exemplo:
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) |
Voltar ao início
Exemplo de consulta 5: Retornando os 10 principais conjuntos de itens
Este exemplo demonstra como usar parte das funções de agrupamento e ordenação que o DMX fornece por padrão. A consulta retorna os 10 principais conjuntos de itens quando ordenada pelo suporte de cada nó. Observe que não é necessário agrupar explicitamente os resultados como se fosse o Transact-SQL; no entanto, você pode usar apenas uma função de agregação em cada consulta.
SELECT TOP 10 (NODE_SUPPORT),NODE_NAME, NODE_CAPTION
FROM Association.CONTENT
WHERE NODE_TYPE = 7
Resultados do exemplo:
NODE_SUPPORT |
4334 |
NODE_NAME |
37 |
NODE_CAPTION |
Sport-100 = Existing |
Usando o modelo para fazer previsões
Um modelo de regras de associação é usado freqüentemente para gerar recomendações que se baseiam em correlações descobertas no conjuntos de itens. Portanto, quando você criar uma consulta de previsão com base em um modelo de regras de associação, normalmente usará as regras do modelo para criar palpites com base nos novos dados. PredictAssociation (DMX) é a função que retorna recomendações e possui diversos argumentos que você pode usar para personalizar os resultados da consulta.
Outro exemplo de onde as consultas em um modelo de associação podem ser úteis é para retornar a confiança de várias regras e conjuntos de itens para que você possa comparar a eficiência de estratégias diferentes de venda cruzada. Os exemplos a seguir ilustram como criar essas consultas.
Voltar ao início
Exemplo de consulta 6: Prevendo itens associados
Este exemplo usa o modelo de associação criado no Tutorial de Mineração de Dados Básico. Ele demonstra como criar uma consulta de previsão que informa quais produtos recomendar para um cliente que comprou um determinado produto. Esse tipo de consulta, em que você fornece valores para o modelo em uma instrução SELECT…UNION, é chamada de consulta singleton. Como a coluna de modelo previsível que corresponde aos novos valores é uma tabela aninhada, use uma cláusula SELECT para mapear o novo valor à coluna da tabela aninhada, [Model], e outra cláusula SELECT para mapear a coluna da tabela aninhada à coluna de nível de caso, [v Assoc Seq Line Items]. Adicionar a palavra-chave INCLUDE-STATISTICS à consulta permitirá que você veja a probabilidade e o suporte das recomendações.
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
Resultados do exemplo:
Modelo |
$SUPPORT |
$PROBABILITY |
$ADJUSTEDPROBABILITY |
---|---|---|---|
Sport-100 |
4334 |
0.291283 |
0.252696 |
Water Bottle |
2866 |
0.19262 |
0.175205 |
Patch kit |
2113 |
0.142012 |
0.132389 |
Voltar ao início
Exemplo de consulta 7: Determinando a confiança dos conjuntos de itens relacionados
Embora as regras sejam úteis para gerar recomendações, os conjuntos de itens são mais interessantes para uma análise mais profunda dos padrões no conjunto de dados. Por exemplo, se você não ficar satisfeito com a recomendação retornada pelo exemplo de consulta anterior, pode examinar outros conjuntos de itens que contêm Product A para poder ter uma idéia melhor se Product A é um acessório que as pessoas tendem a comprar com todos os tipos de produtos ou se A é fortemente correlacionado às compras de determinados produtos. A forma mais fácil de explorar essas relações é filtrando os conjuntos de itens no Visualizador de Associação da Microsoft; no entanto, é possível recuperar as mesmas informações com um consulta.
O exemplo de consulta a seguir retorna todos os conjuntos de itens que incluem o item Water Bottle, inclusive o item único Water Bottle.
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
Resultados do exemplo:
NODE_CAPTION |
NODE_SUPPORT |
D.ATTRIBUTE_NAME |
---|---|---|
Water Bottle = Existing |
2866 |
v Assoc Seq Line Items(Water Bottle) |
Mountain Bottle Cage = Existing, Water Bottle = Existing |
1136 |
v Assoc Seq Line Items(Water Bottle) |
Road Bottle Cage = Existing, Water Bottle = Existing |
1068 |
v Assoc Seq Line Items(Water Bottle) |
Water Bottle = Existing, Sport-100 = Existing |
734 |
v Assoc Seq Line Items(Water Bottle) |
Quando você cria uma consulta que inclui uma tabela aninhada, a consulta retorna não só as linhas da tabela aninhada que correspondem aos critérios, mas também todas as linhas da tabela de casos ou externa. Portanto, neste exemplo adicionamos uma cláusula WHERE para eliminar as linhas da tabela de casos que tenham um valor nulo para o nome do atributo de destino.
Lista de funções
Todos os algoritmos Microsoft fornecem suporte a um conjunto comum de funções. Entretanto, o algoritmo Associação da Microsoft oferece suporte para as funções adicionais listadas na tabela a seguir.
Histórico de alterações
Conteúdo atualizado |
---|
Adicionados links no tópico para facilitar a revisão de exemplos de consultas. |