Exemplos de consulta de um modelo de associação
Aplica-se a: SQL Server 2019 e anteriores do Analysis Services Azure Analysis Services Fabric/Power BI Premium
Importante
A mineração de dados foi preterida no SQL Server 2017 Analysis Services e agora foi descontinuada no SQL Server 2022 Analysis Services. A documentação não foi atualizada para recursos preteridos e descontinuados. Para saber mais, confira Compatibilidade com versões anteriores do Analysis Services.
Ao criar uma consulta em 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 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 esses tipos de consultas para modelos baseados no algoritmo Regras de Associação da Microsoft.
Consultas de conteúdo
Obtendo dados de metadados do modelo com o DMX
Obtendo metadados do conjunto de linhas do esquema
Recuperando os parâmetros originais do modelo
Recuperando uma lista de conjuntos de itens e produtos
Retornando os 10 principais conjuntos de itens
Consultas de previsão
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 assimilado pelo algoritmo de acordo com um esquema padronizado, chamado de conjunto de linhas do esquema do modelo de mineração. Você pode criar consultas no conjunto de linhas do esquema do modelo de mineração usando instruções DMX (Data Mining Extensions) ou usando SQL Server Analysis Services procedimentos armazenados. No SQL Server 2017, você também pode consultar os conjuntos de linhas de esquema diretamente como tabelas do sistema, usando uma sintaxe semelhante a SQL.
Exemplo de consulta 1: Obtendo metadados do modelo usando instruções 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:
Linha | Metadados |
---|---|
MODEL_CATALOG | Teste de Associação |
MODEL_NAME | Associação |
NODE_CAPTION | Modelo de regras de associação |
NODE_SUPPORT | 14879 |
CHILDREN_CARDINALITY | 942 |
NODE_DESCRIPTION | Modelo de regras de associação; 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).
Exemplo de consulta 2: Obtendo metadados adicionais 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:
Linha | Metadados |
---|---|
MODEL_CATALOG | Adventure Works DW Multidimensional 2012 |
MODEL_NAME | Associação |
SERVICE_NAME | Modelo de regras de associação |
PREDICTION_ENTITY | v Assoc Seq Line Items |
MINING_STRUCTURE | Associação |
LAST_PROCESSED | 9/29/2007 10:21:24 PM |
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 frequentes e extrair detalhes sobre regras e conjuntos de itens específicos. 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.
Exemplo de consulta 4: Recuperando a lista de conjuntos de itens e produtos
A consulta a seguir recupera todos os conjuntos de itens 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:
Linha | Metadados |
---|---|
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) |
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:
Linha | Metadados |
---|---|
NODE_SUPPORT | 4334 |
NODE_NAME | 37 |
NODE_CAPTION | Sport-100 = Existing |
Fazendo predições com o modelo
Um modelo de regras de associação é usado frequentemente para gerar recomendações que se baseiam em correlações descobertas nos conjuntos de itens. Portanto, quando você cria uma consulta de previsão com base em um modelo de regras de associação, está normalmente usando as regras no modelo fazer suposições com base em novos dados. PredictAssociation (DMX) é a função que retorna recomendações e tem vários 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 seguintes ilustram como criar essas consultas.
Exemplo de consulta 6: Prevendo itens associados
Este exemplo usa o modelo de Associação criado no Tutorial de Mineração de Dados Intermediário (Analysis Services – Mineração de Dados). 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 um SELECT... A instrução 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:
Modelar | $SUPPORT | $PROBABILITY | $ADJUSTEDPROBABILITY |
---|---|---|---|
Sport-100 | 4334 | 0.291283 | 0.252696 |
Water Bottle | 2866 | 0.19262 | 0.175205 |
Patch kit | 2113 | 0.142012 | 0.132389 |
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 ideia 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 maneira mais fácil de explorar essas relações é filtrando os conjuntos de itens no Visualizador de Associação da Microsoft; no entanto, você pode recuperar as mesmas informações com uma consulta.
O exemplo de consulta a seguir retorna todos os conjuntos de itens que incluem o item Garrafa de Água, inclusive o item único Garrafa de água.
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) |
Essa consulta retorna as duas linhas da tabela aninhada que correspondem aos critérios e todas as linhas da tabela de casos ou externa. Portanto, adicione uma condição que elimine as linhas da tabela de casos que tiverem um valor nulo para o nome do atributo de destino.
Lista de funções
Todos os algoritmos da Microsoft dão suporte a um conjunto comum de funções. No entanto, o algoritmo Associação da Microsoft dá suporte às funções adicionais listadas na tabela a seguir.
Função de previsão | Uso |
---|---|
IsDescendant (DMX) | Determina se um nó é um filho de outro nó no gráfico de rede neural. |
IsInNode (DMX) | Indica se o nó especificado contém o caso atual. |
PredictAdjustedProbability (DMX) | Retorna a probabilidade ponderada. |
PredictAssociation (DMX) | Prevê associação de membro em um conjunto de dados associativo. |
PredictHistogram (DMX) | Retorna uma tabela de valores relacionados ao valor previsto atual. |
PredictNodeId (DMX) | Retorna Node_ID para cada caso. |
PredictProbability (DMX) | Retorna a probabilidade para o valor previsto. |
PredictSupport (DMX) | Retorna o valor de suporte para um estado especificado. |
PredictVariance (DMX) | Retorna a variância para o valor previsto. |
Consulte Também
Algoritmo Associação da Microsoft
Referência técnica do algoritmo de associação da Microsoft
Conteúdo do modelo de mineração para modelos de associação (Analysis Services – Mineração de Dados)