Consultando um modelo de clustering (Analysis Services – Mineração de dados)

Ao criar uma consulta para 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. Se preferir, crie uma consulta de previsão, que usa os padrões do modelo para fazer previsões para os novos dados. Cada tipo de consulta fornece 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 a qual cluster um novo ponto de dados provavelmente pertence.

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

Consultas de conteúdo

Obtendo metadados do modelo com o uso do DMX

Recuperando metadados do 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 com o uso de procedimentos armazenados do sistema

Localizando fatores de discriminação para um cluster

Retornando casos que pertencem a um cluster

Consultas de previsão

Prevendo resultados de um modelo de clustering

Determinando a associação de cluster

Retornando todos os possíveis clusters 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 de esquema de modelo de mineração. Você pode criar consultas para o conjunto de linhas de esquema de modelo de mineração usando instruções DMX. No SQL Server 2008, você também pode consultar os conjuntos de linhas de esquema diretamente como tabelas do sistema.

Retornar ao início

Exemplo de consulta 1: Obtendo metadados do modelo com o uso de instruções DMX

A consulta a seguir retorna metadados básicos sobre o modelo de clustering, TM_Clustering, criado no Tutorial de mineração de dados básica. Os metadados disponíveis no nó pai de um modelo de clustering incluem 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 TM_Clustering.CONTENT
WHERE NODE_TYPE = 1
ObservaçãoObservação

É necessário colocar o nome na coluna, CHILDREN_CARDINALITY, entre colchetes para diferenciá-lo da palavra-chave reservada de MDX do mesmo nome.

Resultados do exemplo:

MODEL_CATALOG

TM_Clustering

MODEL_NAME

Adventure Works DW

NODE_CAPTION

Modelo de clustering

NODE_SUPPORT

12939

CHILDREN_CARDINALITY

10

NODE_DESCRIPTION

Todos

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

Retornar ao início

Exemplo de consulta 2: Recuperando metadados do modelo 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. Essas colunas 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, além dos parâmetros de cluster 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 opções de cluster 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

10/12/2007 7:42:51 PM

LAST_PROCESSED

10/12/2007 8:09:54 PM

PREDICTION_ENTITY

Comprador de bicicleta

MINING_PARAMETERS

CLUSTER_COUNT=10,

CLUSTER_SEED=0,

CLUSTERING_METHOD=1,

MAXIMUM_INPUT_ATTRIBUTES=255,

MAXIMUM_STATES=100,

MINIMUM_SUPPORT = 1

MODELLING_CARDINALITY=10,

SAMPLE_SIZE=50000,

STOPPING_TOLERANCE = 10

Retornar ao início

Localizando informações sobre clusters

As consultas de conteúdo mais úteis sobre modelos de clustering geralmente retornam o mesmo tipo de informação que você pode procurar com o uso do Visualizador de Cluster. Isto inclui perfis de cluster, características de cluster e distinção de cluster. Esta seção fornece exemplos de consultas que recuperam essas informações.

Exemplo de consulta 3: Retornando um cluster ou lista de clusters

Como todos os clusters têm um tipo de nó 5, é possível recuperar facilmente uma lista de clusters consultando o conteúdo do modelo apenas para os nós desse tipo. Você também pode filtrar os nós que são retornados pela probabilidade ou pelo suporte, como mostra este 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

Educação em Inglês = Graduação, 32 <= Idade <= 48, Número de Carros = 0, 35964.0771121808 <= Renda Anual <= 97407.7163393957, Ocupação em Inglês = Profissional, Distância do Trabalho = 2-5 Milhas, Região = América do Norte, Comprador de Bicicleta = 1, Número de Crianças na Casa = 0, Número de Carros = 1, Distância do Trabalho = 0-1 Milhas, Educação em Inglês = Bacharel, Total de Filhos = 1, Número de Crianças na Casa = 2, Ocupação em Inglês = Manual Qualificado, Estado Civil = S, Total de Filhos = 0, Sinalizador do Proprietário da Casa = 0, Sexo = 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 de esquema de mineração de dados.

  • A coluna NODE_DESCRIPTION contém uma lista de atributos separados por vírgula. 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 do cluster. Se o cliente não suportar conjuntos de linhas hierárquicos, é possível retornar a tabela aninhada adicionando a palavra-chave FLATTENED antes da lista da coluna SELECT. Para obter mais informações sobre o uso da palavra-chave FLATTENED, consulte SELECT FROM <modelo>.CONTENT (DMX).

Retornar ao início

Exemplo de consulta 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 do modelo. Se estiver procurando o modelo no visualizador, copie o histograma da Legenda de Mineração e cole-o 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 for necessário obter valores para mais de um cluster de uma vez, é mais fácil consultar o modelo. Por exemplo, ao consultar o modelo, você pode perceber que os dois primeiros clusters diferem em um atributo, Number Cars Owned. Desse modo, você deve extrair os valores de 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ê quer somente dois primeiros clusters.

ObservaçãoObservação

Por padrão, os clusters são ordenados por suporte. Desse modo, a coluna NODE_SUPPORT pode ser omitida.

A segunda linha do código adiciona uma instrução de subseleção que retorna somente algumas colunas da coluna da tabela aninhada. Além disso, ela restringe as linhas da tabela aninhada às linhas relacionadas ao atributo de destino, Number Cars Owned. Para simplificar a exibição, a tabela aninhada possui alias.

ObservaçãoObservação

A coluna da tabela aninhada, PROBABILITY, deve ficar entre colchetes porque ela também é o nome de uma palavra-chave MDX reservada.

Resultados do exemplo:

NODE_NAME

T.ATTRIBUTE_VALUE

T.PROBABILITY

001

2

0.829207754

001

1

0.109354156

001

3

0.034481552

001

4

0.013503302

001

0

0.013453236

001

Ausente

0

002

0

0.576980023

002

1

0.406623939

002

2

0.016380082

002

3

1.60E-05

002

4

0

002

Ausente

0

Retornar ao início

Exemplo de consulta 5: Retornar um perfil de cluster com o uso de procedimentos armazenados do sistema

Para simplificar, em vez de gravar suas próprias consultas por meio do 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 é possível usar os procedimentos armazenados internos para retornar o perfil de um cluster com ID 002.

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

Similarmente, é possível usar um procedimento armazenado de sistema para retornar as características de um cluster específico, como mostra o exemplo a seguir:

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

Resultados do exemplo:

Atributos

Valores

Frequência

Suporte

Número de Crianças na Casa

0

0.999999829076798

899

Região

América do Norte

0.999852875241508

899

Total de Filhos

0

0.993860958572323

893

ObservaçãoObservação

Os procedimentos armazenados do sistema de mineração de dados são para uso interno e a Microsoft reserva-se o direito de alterá-los conforme necessário. Para uso na produção, é recomendável criar consultas por meio de DMX, AMO ou XMLA.

Retornar ao início

Exemplo de consulta 6: Localizar fatores de discriminação para um cluster

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

No entanto, criar consultas para retornar essas informações pode ser complexo e talvez seja necessário algum processamento adicional no cliente para armazenar os resultados temporários e comparar os resultados de duas ou mais consultas. Para simplificar, você pode usar os procedimentos armazenados de sistema.

A consulta a seguir retorna uma única tabela que indica os principais fatores de distinção entre os dois clusters que têm IDs de nó 009 e 007. Os 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

Estas são as mesmas informações apresentadas no gráfico do visualizador de Distinção de Cluster se você selecionar Cluster 9 na primeira lista suspensa e Cluster 7 na segunda lista suspensa. Para comparar o cluster 9 com seu complemento, use a cadeia de caracteres vazia no segundo parâmetro, como mostra o exemplo a seguir:

CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterDiscrimination('TM_Clustering','009','',0.0005,true)
ObservaçãoObservação

Os procedimentos armazenados do sistema de mineração de dados são para uso interno e a Microsoft reserva-se o direito de alterá-los conforme necessário. Para uso na produção, é recomendável criar consultas por meio de DMX, AMO ou XMLA.

Retornar ao início

Exemplo de consulta 7: Retornando casos que pertencem a um cluster

Se o detalhamento estiver 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 tiver sido habilitado na estrutura de mineração, é possível 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 só retorna 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, é necessário conhecer a ID do cluster. Você pode obter a ID do cluster navegando no modelo em um dos visualizadores. Se preferir, renomeie um cluster para facilitar a referência e, em seguida, use o nome em vez de um número de ID. No entanto, saiba que os nomes atribuídos a um cluster serão perdidos se o modelo for reprocessado.

Retornar ao início

Fazendo previsões com o uso do 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ões sobre associação de cluster e retorne probabilidades associadas à previsão. Esta seção fornece exemplos de como criar consultas de previsão sobre modelos de clustering. Você pode fazer previsões para vários casos, especificando uma fonte de dados tabelar, ou pode fornecer novos valores de cada vez criando uma consulta singleton. Para deixar claros os exemplos, todas as consultas desta seção são singleton.

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

Para obter informações sobre como criar consultas de previsão com o uso das ferramentas gráficas do BI Development Studio, consulte Tópicos de instruções da guia Previsão do Modelo de Mineração.

Retornar ao início

Exemplo de consulta 8: Prevendo resultados de um modelo de clustering

Se o modelo de clustering criado tiver um atributo previsível, use-o para fazer previsões sobre os resultados. No entanto, o modelo manipula o atributo previsível de modo diferente, dependendo da definição da coluna previsível com 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 acabado. Porém, se você definir o uso da coluna como PredictOnly, os valores não serão usados para criar clusters. Em vez disso, quando o modo for concluído, o algoritmo de cluster criará novos valores para o atributo PredictOnly com base nos clusters aos quais cada caso pertence.

A consulta a seguir fornece um único caso novo para o modelo, onde as únicas informações sobre o caso são a idade e o sexo. A instrução SELECT especifica o par atributo/valor previsível de seu interesse e a função PredictProbability (DMX) informa a probabilidade de um caso com esses atributos ter o resultado planejado.

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 dos resultados quando o uso é definido como Predict:

Comprador de Bicicleta

Expressão

1

0.592924735740338

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

Comprador de Bicicleta

Expressão

1

0.55843544003102

Neste exemplo, a diferença no modelo não é significante. No entanto, às vezes pode ser importante detectar diferenças a distribuição real dos valores e o que é previsto pelo modelo. A função PredictCaseLikelihood (DMX) é útil neste cenário porque informa a probabilidade de um caso no modelo em questão.

O número que é retornado pela função PredictCaseLikelihood é uma probabilidade e, portanto, sempre está entre 0 e 1, com o valor 0,5 representando um resultado aleatório. Desse modo, uma pontuação inferior a 0,5 indica que o caso previsto é improvável para o modelo e uma pontuação superior a 0,5 indica que o caso previsto é mais provável para 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 para o modelo atual. Quando a palavra-chave NORMALIZED é usada, a pontuação de probabilidade retornada pela função é ajustada dividindo-se a “probabilidade com o modelo” pela “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:

NormalizedValue

NonNormalizedValue

5,56438372679893E-11

8,65459953145182E-68

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

Retornar ao início

Exemplo de consulta 9: Determinando a associação de cluster

Este exemplo usa a função Cluster (DMX) para retornar o cluster ao qual o novo caso mais provavelmente pertence e usa a função ClusterProbability (DMX) para retornar a probabilidade de associação desse 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

Observação   Por padrão, a função ClusterProbability retorna a probabilidade do cluster mais provável. No entanto, é possível especificar um cluster diferente usando a sintaxe ClusterProbability('cluster name'). Se você fizer isto, saiba que os resultados de cada função de previsão são independentes dos outros resultados. Portanto, a pontuação de probabilidade da segunda coluna pode fazer referência a um cluster diferente do nomeado na primeira coluna.

Retornar ao início

Exemplo de consulta 10: Retornando todos os possíveis clusters com probabilidade e distância

No exemplo anterior, a pontuação de probabilidade não foi muito alta. Para determinar se existe um cluster melhor, use a função PredictHistogram (DMX) junto com a função Cluster (DMX) para retornar uma tabela aninhada que inclui todos os clusters possíveis, junto à probabilidade de o novo caso pertencer a cada cluster. A palavra-chave FLATTENED é usada para alterar o conjunto de linhas hierárquico em uma tabela simples para facilitar a visualizaçã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 informam que, apesar da probabilidade ser baixa, o Cluster 2 ainda é o melhor para o novo ponto de dados.

Observação   A coluna adicional, $DISTANCE, representa a distância do ponto de dados ao cluster. Por padrão, o algoritmo do Microsoft Clustering usa o cluster EM evolutivo, que atribui vários clusters a cada ponto de dados e classifica os possíveis clusters. No entanto, se você criar o modelo de clustering usando o algoritmo K-means, somente um cluster poderá ser atribuído a cada ponto de dados e esta consulta retornará somente uma linha. É necessário entender essas diferenças para interpretar os resultados da função PredictCaseLikelihood (DMX). Para obter mais informações sobre as diferenças entre clusterings EM e K-means, consulte Referência técnica do algoritmo Microsoft Clustering.

Retornar ao início

Lista de funções

Todos os algoritmos da Microsoft oferecem suporte a um conjunto de funções comum. No entanto, os modelos criados com o algoritmo do Microsoft Clustering suportam as funções adicionais listadas na tabela a seguir.

Para obter uma lista das funções comuns a todos os tipos de modelo do Microsoft, consulte Referência de algoritmo (Analysis Services – Data Mining). Para obter a sintaxe de funções específicas, consulte Referência de função de DMX (Data Mining Extensions).