Partilhar via


Exemplos de consulta de modelo de aglomeração

Ao criar uma consulta em um modelo de mineração de dados, você pode recuperar metadados sobre o modelo ou criar uma consulta de conteúdo que forneça detalhes sobre os padrões descobertos na análise. Como alternativa, você pode criar uma consulta de previsão, que usa os padrões no modelo para fazer previsões para novos dados. Cada tipo de consulta fornecerá informações diferentes. Por exemplo, uma consulta de conteúdo pode fornecer detalhes adicionais sobre os clusters encontrados, enquanto uma consulta de previsão pode informar em qual cluster um novo ponto de dados é mais provável que pertença.

Esta seção explica como criar consultas para modelos baseados no algoritmo de Clustering da Microsoft.

Consultas de conteúdo

Obtendo metadados de modelo usando DMX

Recuperando metadados de modelo do conjunto de linhas de esquema

Retornando um cluster ou uma lista de clusters

Retornando atributos para um cluster

Retornando um perfil de cluster usando procedimentos armazenados do sistema

Localizando fatores discriminadores para um cluster

Retornando casos que pertencem a um cluster

Consultas de previsão

Prever resultados de um modelo de clustering

Determinando a associação ao cluster

Retornando todos os clusters possíveis com probabilidade e distância

Localizando informações sobre o modelo

Todos os modelos de mineração expõem o conteúdo aprendido pelo algoritmo de acordo com um esquema padronizado, o conjunto de linhas do esquema do modelo de mineração. Você pode criar consultas no conjunto de linhas de esquema do modelo de mineração usando instruções DMX (Extensão de Mineração de Dados). No SQL Server 2014, você também pode consultar os conjuntos de linhas de esquema diretamente como tabelas do sistema.

Retornar à parte superior

Consulta de exemplo 1: Obtendo metadados de modelo usando DMX

A consulta a seguir retorna metadados básicos sobre o modelo de clustering, TM_Clusteringque você criou no Tutorial básico de mineração de dados. Os metadados disponíveis no nó pai de um modelo de agrupamento incluem o nome do modelo, o banco de dados em que o modelo é armazenado e o número de nós filhos no modelo. Essa 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 TM_Clustering.CONTENT  
WHERE NODE_TYPE = 1  

Observação

Você deve colocar o nome da coluna, CHILDREN_CARDINALITY, entre colchetes para diferenciá-la da palavra-chave reservada MDX (Expressões Multidimensionais) com o mesmo nome.

Resultados do exemplo:

CATÁLOGO_DE_MODELOS TM_Agrupamento
MODEL_NAME Adventure Works DW
NODE_CAPTION Modelo de cluster
NODE_SUPPORT 12939
CARDINALIDADE_DOS_FILHOS 10
NODE_DESCRIPTION Todos

Para obter uma definição do que essas colunas significam em um modelo de clustering, consulte o Conteúdo do Modelo de Mineração para Modelos de Clustering (Analysis Services – Mineração de Dados).

Voltar ao topo

Consulta de exemplo 2: recuperando metadados de modelo do conjunto de linhas de esquema

Consultando o conjunto de linhas do esquema de mineração de dados, você pode 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. Eles incluem os parâmetros usados quando o modelo foi criado, a data e a hora em que o modelo foi processado pela última vez e o proprietário do modelo.

O exemplo a seguir retorna a data em que o modelo foi criado, modificado e processado pela última vez, juntamente com os parâmetros de clustering usados para criar o modelo e o tamanho do conjunto de treinamento. Essas informações podem ser úteis para documentar o modelo ou para determinar quais das opções de clustering foram usadas para criar um modelo existente.

SELECT MODEL_NAME, DATE_CREATED, LAST_PROCESSED, PREDICTION_ENTITY, MINING_PARAMETERS   
from $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = 'TM_Clustering'  

Resultados do exemplo:

MODEL_NAME TM_Clustering
DATE_CREATED 12/10/2007 19:42:51
Último_Processado 12/10/2007 20:09:54 PM
PREDICTION_ENTITY Comprador de Bicicletas
PARÂMETROS_DE_MINERAÇÃO CLUSTER_COUNT=10,

CLUSTER_SEED=0,

CLUSTERING_METHOD=1,

ATRIBUTOS_DE_ENTRADA_MÁXIMOS=255

MAXIMUM_STATES=100,

MINIMUM_SUPPORT=1,

MODELLING_CARDINALITY=10,

SAMPLE_SIZE=50000,

STOPPING_TOLERANCE=10

Voltar ao topo

Localizando informações sobre clusters

As consultas de conteúdo mais úteis em modelos de clustering geralmente retornam o mesmo tipo de informação que você pode navegar usando o Visualizador de Cluster. Isso inclui perfis de cluster, características do cluster e discriminação de cluster. Esta seção fornece exemplos de consultas que recuperam essas informações.

Consulta de exemplo 3: retornando um cluster ou uma lista de clusters

Como todos os clusters têm um tipo de nó 5, você pode recuperar facilmente uma lista dos clusters consultando o conteúdo do modelo somente para os nós desse tipo. Você também pode filtrar os nós que são retornados por probabilidade ou por suporte, conforme mostrado neste exemplo.

SELECT NODE_NAME, NODE_CAPTION ,NODE_SUPPORT, NODE_DESCRIPTION  
FROM TM_Clustering.CONTENT  
WHERE NODE_TYPE = 5 AND NODE_SUPPORT > 1000  

Resultados do exemplo:

NODE_NAME 002
NODE_CAPTION Cluster 2
NODE_SUPPORT 1649
NODE_DESCRIPTION English Education=Graduate Degree , 32 <=Age <=48 , Number Cars Owned=0 , 35964.0771121808 <=Yearly Income <=97407.7163393957 , English Occupation=Professional , Commute Distance=2-5 Milhas, Região=América do Norte, Comprador de Bicicleta=1, Número de Crianças em Casa=0, Número de Carros Possuídos=1, Distância de Deslocamento=0-1 Milhas, Educação em Inglês=Graduação, Total de Crianças=1, Número de Filhos em Casa=2, Ocupação em Inglês=Trabalho Manual Qualificado, Estado Civil=Solteiro(a), Total de Filhos=0, Bandeira do Proprietário da Casa=0, Gênero=F, Total de Filhos=2, Região=Pacífico

Os atributos que definem o cluster podem ser encontrados em duas colunas no conjunto de linhas do esquema de mineração de dados.

  • A coluna NODE_DESCRIPTION contém uma lista separada por vírgulas de atributos. Observe que a lista de atributos pode ser abreviada para fins de exibição.

  • A tabela aninhada na coluna NODE_DISTRIBUTION contém a lista completa de atributos para o cluster. Se o cliente não der suporte a conjuntos de linhas hierárquicas, você poderá retornar a tabela aninhada adicionando a palavra-chave FLATTENED antes da lista de colunas SELECT. Para obter mais informações sobre o uso da palavra-chave FLATTENED, consulte SELECT FROM <modelo>.CONTEÚDO (DMX).

Retornar à parte superior

Consulta de exemplo 4: Retornando atributos para um cluster

Para cada cluster, o Visualizador de Cluster exibe um perfil que lista os atributos e seus valores. O visualizador também exibe um histograma que mostra a distribuição de valores para toda a população de casos no modelo. Se você estiver navegando pelo modelo no visualizador, poderá copiar facilmente o histograma da Legenda de Mineração e colá-lo no Excel ou em um documento do Word. Você também pode usar o painel Características do Cluster do visualizador para comparar graficamente os atributos de clusters diferentes.

No entanto, se você precisar obter valores para mais de um cluster por vez, será mais fácil consultar o modelo. Por exemplo, ao procurar o modelo, você pode notar que os dois principais clusters diferem em relação a um atributo. Number Cars Owned Portanto, você deseja extrair os valores para cada cluster.

SELECT TOP 2 NODE_NAME,   
(SELECT ATTRIBUTE_VALUE, [PROBABILITY] FROM NODE_DISTRIBUTION WHERE ATTRIBUTE_NAME = 'Number Cars Owned')  
AS t  
FROM [TM_Clustering].CONTENT  
WHERE NODE_TYPE = 5  

A primeira linha do código especifica que você deseja apenas os dois principais clusters.

Observação

Por padrão, os clusters são ordenados pelo suporte. Portanto, a coluna NODE_SUPPORT pode ser omitida.

A segunda linha do código adiciona uma instrução de subconsulta que retorna apenas determinadas colunas da tabela aninhada. Além disso, restringe as linhas da tabela aninhada às relacionadas ao atributo de destino. Number Cars Owned Para simplificar a exibição, a tabela aninhada é renomeada.

Observação

A coluna PROBABILITY de tabela aninhada deve estar entre colchetes porque também é o nome de um termo MDX reservado.

Resultados do exemplo:

NODE_NAME T.ATTRIBUTE_VALUE PROBABILIDADE T
001 2 0.829207754
001 1 0.109354156
001 3 0.034481552
001 4 0.013503302
001 0 0.013453236
001 Em falta 0
002 0 0.576980023
002 1 0.406623939
002 2 0.016380082
002 3 1.60E-05
002 4 0
002 Em falta 0

Retornar ao topo

Consulta de exemplo 5: retornar um perfil de cluster usando procedimentos armazenados do sistema

Como um atalho, em vez de escrever suas próprias consultas usando DMX, você também pode chamar os procedimentos armazenados do sistema que o Analysis Services usa para trabalhar com clusters. O exemplo a seguir ilustra como usar os procedimentos armazenados internos para retornar o perfil de um cluster com a ID 002.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterProfiles('TM_Clustering", '002',0.0005  

Da mesma forma, você pode usar um procedimento armazenado do sistema para retornar as características de um cluster específico, conforme mostrado no exemplo a seguir:

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterCharacteristics('TM_Clustering", '009',0.0005  

Resultados do exemplo:

Atributos Valores Frequência Apoio
Número de crianças em casa 0 0.999999829076798 899
Região América do Norte 0.999852875241508 899
Total de filhos 0 0.993860958572323 893

Observação

Os procedimentos armazenados do sistema de mineração de dados são para uso interno e a Microsoft se reserva o direito de alterá-los conforme necessário. Para uso em produção, recomendamos que você crie consultas usando DMX, AMO ou XMLA.

Retornar à parte superior

Consulta de exemplo 6: localizar fatores discriminadores para um cluster

A guia Discriminação de Cluster do Visualizador de Cluster permite que você compare facilmente um cluster com outro cluster ou compare um cluster com todos os casos restantes (o complemento do cluster).

No entanto, a criação de consultas para retornar essas informações pode ser complexa e você pode precisar de algum processamento adicional no cliente para armazenar os resultados temporários e comparar os resultados de duas ou mais consultas. Como atalho, você pode usar os procedimentos armazenados do sistema.

A consulta a seguir retorna uma única tabela que indica os principais fatores discriminadores entre os dois clusters que têm as IDs de nó de 009 e 007. Atributos com valores positivos favorecem o cluster 009, enquanto os atributos com valores negativos favorecem o cluster 007.

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterDiscrimination('TM_Clustering','009','007',0.0005,true)  

Resultados do exemplo:

Atributos Valores Pontuação
Região América do Norte 100
Ocupação em inglês Manual Qualificado 94.9003803898654
Região Europa -72.5041051379789
Ocupação em inglês Manual -69.6503163202722

Esta é a mesma informação apresentada no gráfico do visualizador de Discriminação de Cluster se você selecionar o Cluster 9 na primeira lista suspensa e o Cluster 7 na segunda lista suspensa. Para comparar o cluster 9 com seu complemento, use a cadeia de caracteres vazia no segundo parâmetro, conforme mostrado no exemplo a seguir:

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterDiscrimination('TM_Clustering','009','',0.0005,true)  

Observação

Os procedimentos armazenados do sistema de mineração de dados são para uso interno e a Microsoft se reserva o direito de alterá-los conforme necessário. Para uso em produção, recomendamos que você crie consultas usando DMX, AMO ou XMLA.

Voltar ao topo

Consulta de exemplo 7: retornando casos que pertencem a um cluster

Se o drillthrough tiver sido habilitado no modelo de mineração, você poderá criar consultas que retornam informações detalhadas sobre os casos usados no modelo. Além disso, se o detalhamento (drillthrough) tiver sido habilitado na estrutura de mineração, você poderá incluir colunas da estrutura subjacente usando a função StructureColumn (DMX).

O exemplo a seguir retorna duas colunas que foram usadas no modelo, Idade e Região e mais uma coluna, Nome, que não foi usada no modelo. A consulta retorna apenas os casos que foram classificados no Cluster 1.

SELECT [Age], [Region], StructureColumn('First Name')  
FROM [TM_Clustering].CASES  
WHERE IsInNode('001')  

Para retornar os casos que pertencem a um cluster, você deve conhecer a ID do cluster. Você pode obter a ID do cluster navegando pelo modelo em um dos visualizadores. Ou você pode renomear um cluster para uma referência mais fácil, após a qual você pode usar o nome no lugar de um número de ID. No entanto, saiba que os nomes que você atribuir a um cluster serão perdidos se o modelo for reprocessado.

Voltar ao topo

Fazendo previsões usando o modelo

Embora o clustering normalmente seja usado para descrever e entender dados, a implementação da Microsoft também permite que você faça previsão sobre a associação ao cluster e retorne probabilidades associadas à previsão. Esta seção fornece exemplos de como criar consultas de previsão em modelos de clustering. Você pode fazer previsões para vários casos, especificando uma fonte de dados tabular ou pode fornecer novos valores por vez criando uma consulta singleton. Para maior clareza, os exemplos nesta seção são todas consultas singleton.

Para obter mais informações sobre como criar consultas de previsão usando DMX, consulte Interfaces de Consulta de Mineração de Dados.

Retornar à parte superior

Consulta de exemplo 8: Prever resultados de um modelo de clustering

Se o modelo de clustering criado contiver um atributo previsível, você poderá usar o modelo para fazer previsões sobre os resultados. No entanto, o modelo manipula o atributo previsível de forma diferente, dependendo se você definir a coluna previsível como Predict ou PredictOnly. Se você definir o uso da coluna como Predict, os valores desse atributo serão adicionados ao modelo de clustering e aparecerão como atributos no modelo concluído. No entanto, se você definir o uso da coluna como PredictOnly, os valores não serão usados para criar clusters. Em vez disso, depois que o modo é concluído, o algoritmo de clustering cria novos valores para o PredictOnly atributo com base nos clusters aos quais cada caso pertence.

A consulta a seguir fornece um único caso novo para o modelo, em que as únicas informações sobre o caso são a idade e o sexo. A instrução SELECT especifica o par de atributo/valor previsível no qual você está interessado e a função PredictProbability (DMX) informa a probabilidade de que um caso com esses atributos tenha o resultado de destino.

SELECT  
  [TM_Clustering].[Bike Buyer], PredictProbability([Bike Buyer],1)  
FROM  
  [TM_Clustering]  
NATURAL PREDICTION JOIN  
(SELECT 40 AS [Age],  
  'F' AS [Gender]) AS t  

Exemplo de resultados quando o uso é definido como Predict:

Comprador de Bicicletas Expressão
1 0.592924735740338

Exemplo de resultados quando o uso é definido PredictOnly e o modelo é reprocessado:

Comprador de Bicicletas Expressão
1 0.55843544003102

Neste exemplo, a diferença no modelo não é significativa. No entanto, às vezes pode ser importante detectar diferenças entre a distribuição real de valores e o que o modelo prevê. A função PredictCaseLikelihood (DMX) é útil nesse cenário, pois informa a probabilidade de um caso, considerando o modelo.

O número retornado pela função PredictCaseLikelihood é uma probabilidade e, portanto, está sempre entre 0 e 1, com um valor de 0,5 representando o resultado aleatório. Portanto, uma pontuação menor que .5 significa que o caso previsto é improvável, dado o modelo, e uma pontuação acima de 0,5 indica que o caso previsto é mais provável do que não se ajustar ao modelo.

Por exemplo, a consulta a seguir retorna dois valores que caracterizam a probabilidade de um novo caso de exemplo. O valor não normalizado representa a probabilidade dada ao modelo atual. Quando você usa a palavra-chave NORMALIZED, a pontuação de probabilidade retornada pela função é ajustada dividindo "probabilidade com o modelo" por "probabilidade sem o modelo".

SELECT  
PredictCaseLikelihood(NORMALIZED) AS [NormalizedValue], PredictCaseLikelihood(NONNORMALIZED) AS [NonNormalizedValue]  
FROM  
  [TM_Clustering_PredictOnly]  
NATURAL PREDICTION JOIN  
(SELECT 40 AS [Age],  
  'F' AS [Gender]) AS t  

Resultados do exemplo:

ValorNormalizado ValorNãoNormalizado
5.56438372679893E-11 8.65459953145182E-68

Observe que os números nesses resultados são expressos em notação científica.

Voltar ao topo

Consulta de exemplo 9: Determinando a associação ao cluster

Este exemplo usa a função Cluster (DMX) para retornar o cluster ao qual o novo caso é mais provável de pertencer e usa a função DMX (ClusterProbability) para retornar a probabilidade de associação nesse cluster.

SELECT Cluster(), ClusterProbability()  
FROM  
  [TM_Clustering]  
NATURAL PREDICTION JOIN  
(SELECT 40 AS [Age],  
  'F' AS [Gender],  
  'S' AS [Marital Status]) AS t  

Resultados do exemplo:

$CLUSTER Expressão
Cluster 2 0.397918596951617

Nota Por padrão, a ClusterProbability função retorna a probabilidade do cluster mais provável. No entanto, você pode especificar um cluster diferente usando a sintaxe ClusterProbability('cluster name'). Se você fizer isso, lembre-se de que os resultados de cada função de previsão são independentes dos outros resultados. Portanto, a pontuação de probabilidade na segunda coluna pode se referir a um cluster diferente do cluster nomeado na primeira coluna.

Voltar ao topo

Consulta de exemplo 10: retornando todos os clusters possíveis com probabilidade e distância

No exemplo anterior, a pontuação de probabilidade não era muito alta. Para determinar se há um cluster melhor, você pode usar a função PredictHistogram (DMX) junto com a função Cluster (DMX) para retornar uma tabela aninhada que inclui todos os clusters possíveis, juntamente com a probabilidade de que o novo caso que pertence a cada cluster. A palavra-chave FLATTENED é usada para alterar o conjunto de linhas hierárquica em uma tabela simples para facilitar a exibição.

SELECT FLATTENED PredictHistogram(Cluster())  
From  
  [TM_Clustering]  
NATURAL PREDICTION JOIN  
(SELECT 40 AS [Age],  
  'F' AS [Gender],  
  'S' AS [Marital Status])  
Expression.$CLUSTER Expression.$DISTANCE Expression.$PROBABILITY
Cluster 2 0.602081403048383 0.397918596951617
Cluster 10 0.719691686785675 0.280308313214325
Cluster 4 0.867772590378791 0.132227409621209
Cluster 5 0.931039872200985 0.0689601277990149
Cluster 3 0.942359230072167 0.0576407699278328
Cluster 6 0.958973668972756 0.0410263310272437
Cluster 7 0.979081275926724 0.0209187240732763
Cluster 1 0.999169044818624 0.000830955181376364
Cluster 9 0.999831227795894 0.000168772204105754
Cluster 8 1 0

Por padrão, os resultados são classificados por probabilidade. Os resultados dizem que, mesmo que a probabilidade do Cluster 2 seja bastante baixa, o Cluster 2 ainda é o melhor ajuste para o novo ponto de dados.

Nota A coluna $DISTANCEadicional representa a distância do ponto de dados até o cluster. Por padrão, o Algoritmo de Clustering da Microsoft usa clustering EM escalonável, que atribui vários clusters a cada ponto de dados e classifica os clusters possíveis. No entanto, se você criar seu modelo de clustering usando o algoritmo K-means, apenas um cluster poderá ser atribuído a cada ponto de dados e essa consulta retornará apenas uma linha. Entender essas diferenças é necessário para interpretar os resultados da função PredictCaseLikelihood (DMX ). Para obter mais informações sobre as diferenças entre o clustering EM e K-means, consulte a Referência Técnica do Algoritmo de Clustering da Microsoft.

Retornar à parte superior

Lista de funções

Todos os algoritmos da Microsoft dão suporte a um conjunto comum de funções. No entanto, os modelos criados usando o algoritmo de Clustering da Microsoft dão suporte às funções adicionais listadas na tabela a seguir.

Função de previsão Uso
Cluster (DMX) Retorna o cluster com maior probabilidade de conter o caso de entrada.
ClusterDistance (DMX) Retorna a distância do caso de entrada do cluster especificado ou, se nenhum cluster for especificado, a distância do caso de entrada do cluster mais provável.

Retorna a probabilidade de que o caso de entrada pertença ao cluster especificado.
ClusterProbability (DMX) Retorna a probabilidade de que o caso de entrada pertença ao cluster especificado.
IsDescendant (DMX) Determina se um nó é filho de outro nó no modelo.
IsInNode (DMX) Indica se o nó especificado contém o caso atual.
PredictAdjustedProbability (DMX) Retorna a probabilidade ponderada.
PredictAssociation (DMX) Prevê a associação em um conjunto de dados associativo.
PredictCaseLikelihood (DMX) Retorna a probabilidade de um caso de entrada se ajustar ao modelo existente.
PredictHistogram (DMX) Retorna uma tabela de valores relacionada ao valor previsto atual.
PredictNodeId (DMX) Retorna o Node_ID para cada caso.
PredictProbability (DMX) Retorna a probabilidade para o valor previsto.
PredictStdev (DMX) Retorna o desvio padrão previsto para a coluna especificada.
PredictSupport (DMX) Retorna o valor de suporte para um estado especificado.
PredictVariance (DMX) Retorna a variação de uma coluna especificada.

Para obter a sintaxe de funções específicas, consulte Referência de função DMX (Extensões de Mineração de Dados).

Consulte Também

Consultas de mineração de dados
Referência técnica do algoritmo de clustering da Microsoft
Algoritmo de clustering da Microsoft