Consultando um modelo de clusterização de sequência (Analysis Services – Mineração de Dados)
Ao criar uma consulta em um modelo de mineração de dados, é possível criar uma consulta de conteúdo, que fornece detalhes sobre as informações armazenadas no modelo ou criar uma consulta de previsão, que usa os padrões no modelo para fazer previsões com base nos novos dados fornecidos. Para um modelo de clusterização de sequência, as consultas de conteúdo geralmente fornecem mais detalhes sobre os clusters encontrados ou as transições dentro desses clusters. Você também pode recuperar metadados sobre o modelo usando uma consulta.
As consultas de previsão em um modelo de clusterização de sequência geralmente fazem recomendações com base nas sequências e transições, em atributos não sequenciais incluídos no modelo ou em uma combinação de atributos sequenciais e não sequenciais.
Esta seção explica como criar consultas para modelos baseados no algoritmo MSC. Para obter informações gerais sobre como criar consultas, consulte Consultando modelos de mineração de dados (Analysis Services - Mineração de dados).
Consultas de conteúdo
Usando o conjunto de linhas do esquema de mineração de dados para retornar parâmetros do modelo
Obtendo uma lista de sequências para um estado
Usando procedimentos armazenados do sistema
Consultas de previsão
Prever o próximo estado ou estados
Localizando informações sobre o Modelo de Clustering de Sequências
Para criar consultas significativas no conteúdo de um modelo de mineração, você deve entender a estrutura do conteúdo do modelo e quais tipos de nós armazenam quais tipos de informações. Para obter mais informações, consulte Conteúdo do modelo de mineração para modelos de clustering de sequências (Analysis Services – Mineração de Dados).
Exemplo de consulta 1: Usando o conjunto de linhas do esquema de mineração de dados para retornar parâmetros do modelo
Ao consultar o conjunto de linhas do esquema de mineração de dados, você pode encontrar vários tipos de informações sobre o modelo, inclusive metadados básicos, a data e a hora de criação e do último processamento do modelo, o nome da estrutura de mineração na qual o modelo se baseia e a coluna usada como o atributo previsível.
A consulta a seguir retorna os parâmetros que foram usados para criar e treinar o modelo, [Sequence Clustering]. Você pode criar este modelo na Lição 5 do Tutorial de mineração de dados básico.
SELECT MINING_PARAMETERS
from $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'Sequence Clustering'
Resultados do exemplo:
MINING_PARAMETERS |
---|
CLUSTER_COUNT=15,MINIMUM_SUPPORT=10,MAXIMUM_STATES=100,MAXIMUM_SEQUENCE_STATES=64 |
Observe que este modelo foi criado usando-se o valor padrão de 10 para CLUSTER_COUNT. Quando você especifica um número de clusters diferente de zero para CLUSTER_COUNT, o algoritmo trata esse número como uma dica para o número aproximado de clusters a serem encontrados. No entanto, no processo de análise, o algoritmo pode encontrar mais ou menos clusters. Nesse caso, o algoritmo descobriu que 15 clusters se ajustam melhor aos dados de treinamento. Assim, a lista de valores de parâmetro do modelo completo reporta a contagem de clusters conforme determinado pelo algoritmo, não o valor passado durante a criação do modelo.
Como esse comportamento difere de deixar o algoritmo determinar o melhor número de clusters? Como uma experiência, você pode criar outro modelo de clusterização que usa os mesmos dados, mas definir CLUSTER_COUNT como 0. Quando você fizer isso, o algoritmo detectará 32 clusters. Portanto, usando o valor padrão de 10 para CLUSTER_COUNT, você restringe o número de resultados.
O valor de 10 é usado por padrão porque reduzir o número de clusters torna mais fácil para a maioria das pessoas procurar e entender os agrupamentos nos dados. Entretanto, cada modelo e conjunto de dados é diferente. Talvez você queira fazer experiências com números de clusters diferentes para verificar qual valor de parâmetro gera o modelo mais preciso.
Retornar ao início
Exemplo de consulta 2: Obtendo uma lista de sequências para um estado
O conteúdo do modelo de mineração armazena as sequências localizadas nos dados de treinamento como um primeiro estado associado a uma lista de todos os segundos estados relacionados. O primeiro estado é usado como o rótulo da sequência e os segundos estados relacionados são denominados transições.
Por exemplo, a consulta a seguir retorna a lista completa de primeiros estados no modelo, antes do agrupamento de sequências em clusters. Você pode obter essa lista retornando a lista de sequências (NODE_TYPE = 13) que têm o nó raiz do modelo como pai (PARENT_UNIQUE_NAME = 0). A palavra-chave FLATTENED torna os resultados mais fáceis de ler.
Observação |
---|
O nome das colunas, PARENT_UNIQUE_NAME, Suporte e Probabilidade deve ser colocado entre colchetes para distingui-los das palavras-chave reservadas de mesmo nome. |
SELECT FLATTENED NODE_UNIQUE_NAME,
(SELECT ATTRIBUTE_VALUE AS [Product 1],
[Support] AS [Sequence Support],
[Probability] AS [Sequence Probability]
FROM NODE_DISTRIBUTION) AS t
FROM [Sequence Clustering].CONTENT
WHERE NODE_TYPE = 13
AND [PARENT_UNIQUE_NAME] = 0
Resultados parciais:
NODE_UNIQUE_NAME |
Produto 1 |
Suporte de sequência |
Probabilidade de sequência |
---|---|---|---|
1081327 |
Ausente |
0 |
####### |
1081327 |
Suporte de bicicleta multifuncional |
17 |
0.00111 |
1081327 |
Lavagem de bicicleta |
64 |
0.00418 |
1081327 |
(linhas 4 a 36 omitidas) |
|
|
1081327 |
Women's Mountain Shorts |
506 |
0.03307 |
A lista de sequências no modelo sempre é classificada alfabeticamente em ordem crescente. A ordem das sequências é importante porque você pode encontrar as transições relacionadas examinando o número de ordem de sequência. O valor Missing sempre é a transição 0.
Por exemplo, nos resultados anteriores, o produto "Women Mountain Shorts" é a sequência número 37 no modelo. Você pode usar essa informação para exibir todos os produtos que já foram comprados depois de "Women Mountain Shorts".
Para fazer isso, primeiro referencie o valor retornado para NODE_UNIQUE_NAME na consulta anterior, para obter a ID do nó que contém todas as sequências do modelo. Passe esse valor à consulta como a ID do nó pai, para obter apenas as transições incluídas no nó, o que ocorre para conter uma lista de todas as sequências do modelo. No entanto, se queria visualizar a lista de transições de um determinado cluster, você poderia passar a ID do nó do cluster e visualizar apenas as sequências associadas a esse cluster.
SELECT NODE_UNIQUE_NAME
FROM [Sequence Clustering].CONTENT
WHERE NODE_DESCRIPTION = 'Transition row for sequence state 37'
AND [PARENT_UNIQUE_NAME] = '1081327'
Resultados do exemplo:
NODE_UNIQUE_NAME |
---|
1081365 |
O nó representado por esta ID contém uma lista das sequências após o produto "Women's Mountain Shorts", junto com os valores de suporte e probabilidade.
SELECT FLATTENED
(SELECT ATTRIBUTE_VALUE AS Product2,
[Support] AS [P2 Support],
[Probability] AS [P2 Probability]
FROM NODE_DISTRIBUTION) AS t
FROM [Sequence Clustering].CONTENT
WHERE NODE_UNIQUE_NAME = '1081365'
Resultados do exemplo:
t.Product2 |
Suporte de t.P2 |
Probabilidade de t.P2 |
---|---|---|
Ausente |
230.7419 |
0.456012 |
Colete clássico |
8.16129 |
0.016129 |
Cycling Cap |
60.83871 |
0.120235 |
Luvas de meio dedo |
30.41935 |
0.060117 |
Long-Sleeve Logo Jersey |
86.80645 |
0.171554 |
Meias para corrida |
28.93548 |
0.057185 |
Camisa esportiva clássica de manga curta |
60.09677 |
0.118768 |
Observe que o suporte para as várias sequências relacionadas a Women's Mountain Shorts é 506 no modelo. Os valores de suporte para as transições também somam 506. No entanto, os números não são inteiros, o que parecerá um pouco estranho se você esperar que o suporte represente simplesmente uma contagem de casos que contêm cada transição. No entanto, como o método para criar clusters calcula a associação parcial, a probabilidade de qualquer transição em um cluster deve ser avaliada por sua probabilidade de pertencer a esse cluster em particular.
Por exemplo, se houver quatro clusters, uma determinada sequência pode ter uma possibilidade de 40% de pertencer ao cluster 1, 30% de pertencer ao cluster 2, 20% de pertencer ao cluster 3 e 10% de pertencer ao cluster 4. Depois que o algoritmo determinar a qual cluster a transição tem maior probabilidade de pertencer, ele avaliará as probabilidades dentro do cluster pela probabilidade anterior do cluster.
Voltar ao início
Exemplo de consulta 3: Usando procedimentos armazenados do sistema
Com esses exemplos de consulta, você pode observar que as informações armazenadas no modelo são complexas e que talvez seja necessário criar várias consultas para obter os dados necessários. No entanto, o visualizador MSC fornece um conjunto avançado de ferramentas para navegação gráfica pelas informações contidas em um modelo de clusterização de sequência e você ainda pode usar esse visualizador para consultar e detalhar o modelo.
Na maioria dos casos, as informações apresentadas no visualizador MSC são criadas com o uso de procedimentos armazenados de sistema do Analysis Services para consultar o modelo. Você pode escrever consultas DMX referentes ao conteúdo do modelo para recuperar as mesmas informações, mas os procedimentos armazenados de sistema do Analysis Services fornecem um atalho prático para explorar ou testar modelos.
Observação |
---|
Os procedimentos armazenados de sistema são usados para processamento interno pelo servidor e pelos clientes que a Microsoft fornece para interação com o servidor Analysis Services. Assim, a Microsoft se reserva o direito de alterá-los a qualquer momento. Embora eles sejam descritos aqui para sua conveniência, não há suporte para seu uso em um ambiente de produção. Para assegurar a estabilidade e a compatibilidade em um ambiente de produção, você sempre deve escrever suas próprias consultas usando DMX. |
Esta seção fornece alguns exemplos de como usar os procedimentos armazenados de sistema para criar consultas referentes a um modelo de clusterização de sequência:
Perfis de cluster e casos de exemplo
A guia Perfis de cluster mostra uma lista de clusters no modelo, o tamanho de cada cluster e um histograma que indica os estados inclusos no cluster. Há dois procedimentos armazenados de sistema que você pode usar em consultas para recuperar informações semelhantes:
GetClusterProfile retorna as características do cluster, com todas as informações encontradas na tabela NODE_DISTRIBUTION do cluster.
GetNodeGraph retorna os nós e as margens que podem ser usadas para construir uma representação matemática gráfica dos clusters, correspondente ao que você visualiza na primeira guia de Clusterização de Sequência. Os nós são clusters e as margens representam pesos ou força.
O exemplo a seguir demonstra como usar o procedimento armazenado de sistema, GetClusterProfiles, para retornar todos os clusters no modelo, com os respectivos perfis. Este procedimento armazenado executa uma série de instruções DMX que retornam o conjunto completo de perfis no modelo. Entretanto, para usar esse procedimento armazenado, você deve saber o endereço do modelo.
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterProfiles('Sequence Clustering', 2147483647, 0)
O exemplo a seguir demonstra como recuperar o perfil de um determinado cluster, Cluster 12, usando o procedimento armazenado de sistema GetNodeGraph e especificando a ID do cluster, que geralmente é igual ao número no nome do cluster.
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetNodeGraph('Sequence Clustering','12',0)
Se você omitir a ID do cluster, conforme mostrado na consulta a seguir, GetNodeGraph retornará uma lista simples ordenada de todos os perfis de cluster:
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetNodeGraph('Sequence Clustering','',0)
A guia Perfil de Cluster também exibe um histograma de casos de exemplo do modelo. Esses casos de exemplo representam os casos idealizados do modelo. Esses casos não são armazenados no modelo da mesma forma que os dados de treinamento; você deve usar uma sintaxe especial para recuperar os casos de exemplo do modelo.
SELECT * FROM [Sequence Clustering].SAMPLE_CASES WHERE IsInNode('12')
Para obter mais informações, consulte SELECT FROM <modelo>.SAMPLE_CASES (DMX).
Características e discriminação do cluster
A guia Características do Cluster resume os atributos principais de cada cluster, classificados por probabilidade. Você pode descobrir quantos casos pertencem a um cluster e como é a distribuição de casos no cluster: cada característica tem um certo suporte. Para visualizar as características de um cluster específico, você deve saber a ID do cluster.
Os exemplos a seguir usam o procedimento armazenado de sistema GetClusterCharacteristics para retornar todas as características de Cluster 12 que têm uma pontuação de probabilidade acima do limite especificado de 0,0005.
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterCharacteristics('Sequence Clustering','12',0.0005)
Para retornar as características de todos os clusters, deixe a ID de cluster vazia.
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterCharacteristics('Sequence Clustering','',0.0005)
O exemplo a seguir chama o procedimento armazenado de sistema GetClusterDiscrimination para comparar as características de Cluster 1 e Cluster 12.
CALL System.Microsoft.AnalysisServices.System.DataMining.Clustering.GetClusterDiscrimination('Sequence Clustering','1','12',0.0005,true)
Se você quiser escrever sua própria consulta em DMX para comparar dois clusters ou comparar um cluster com seu complemento, primeiro será necessário recuperar um conjunto de características e depois recuperar as características do cluster específico no qual há interesse e comparar os dois conjuntos. Este cenário é mais complicado e normalmente requer algum processamento de cliente.
Estados e transições
A guia Transições de Estado de MSC executa consultas complicadas no back-end para recuperar e comparar as estatísticas para clusters diferentes. Reproduzir esses resultados requer uma consulta mais complexa e algum processamento de cliente.
No entanto, você pode usar as consultas DMX descritas no Exemplo 2 da seção Consultas de conteúdo para recuperar probabilidades e estados para sequências ou para transições individuais.
Voltar ao início
Usando o modelo para fazer previsões
As consultas de previsão em um modelo de clustering de sequência podem usar muitas das funções de previsão usadas com outros modelos de clustering. Além disso, é possível usar a função de previsão especial, PredictSequence (DMX), para fazer recomendações ou para prever os próximos estados.
Exemplo de consulta 4: Prever o próximo estado ou estados
É possível usar a função PredictSequence (DMX) para prever o próximo estado mais provável, dado um valor. Também é possível prever vários estados seguintes: por exemplo, você pode retornar uma lista dos três principais produtos que um cliente provavelmente compra, para apresentar uma lista de recomendações.
O exemplo de consulta a seguir é uma consulta de previsão singleton que retorna as cinco previsões principais, junto com sua probabilidade. Como o modelo inclui uma tabela aninhada, você deve usar a tabela aninhada [v Assoc Seq Line Items] como a referência de coluna ao fazer previsões. Além disso, quando você fornece valores como entrada, é necessário juntar as colunas da tabela de caixa e da tabela aninhada, conforme mostrado pelas instruções SELECT aninhadas.
SELECT FLATTENED PredictSequence([v Assoc Seq Line Items], 7)
FROM [Sequence Clustering]
NATURAL PREDICTION JOIN
(SELECT (SELECT 1 as [Line Number],
'All-Purpose Bike Stand' as [Model]) AS [v Assoc Seq Line Items])
AS t
Resultados do exemplo:
Expression.$Sequence |
Expression.Line Number |
Expression.Model |
---|---|---|
1 |
|
Cycling Cap |
2 |
|
Cycling Cap |
3 |
|
Sport-100 |
4 |
|
Camisa esportiva com logotipo de manga comprida |
5 |
|
Luvas de meio dedo |
6 |
|
Suporte de bicicleta multifuncional |
7 |
|
Suporte de bicicleta multifuncional |
Há três colunas nos resultados, mesmo que você talvez esteja esperando apenas uma coluna, porque consulta sempre retorna uma coluna para a tabela de caixa. Aqui os resultados são simples; caso contrário, a consulta retornaria uma única coluna que contém duas colunas de tabela aninhada.
A coluna $sequence é retornada por padrão pela função PredictSequence para ordenar os resultados da previsão. A coluna [Line Number] é necessária para corresponder às chaves de sequência no modelo, mas as chaves não são geradas.
De forma interessante, as principais sequências previstas depois de Suporte de bicicleta multifuncional são Capacete para ciclismo e Capacete para ciclismo. Isso não é um erro. Dependendo do modo como os dados são apresentados ao cliente e como são agrupados durante o treinamento do modelo, é bem possível ter sequências desse tipo. Por exemplo, um cliente pode adquirir um capacete para ciclismo (vermelho) e depois outro capacete para ciclismo (azul), ou comprar dois seguidos se não havia nenhum modo de especificar a quantidade.
Os valores nas linhas 6 e 7 são espaços reservados. Quando você chega ao fim da cadeia de transições possíveis, em vez de encerrar os resultados da previsão, o valor que foi passado como entrada é adicionado aos resultados. Por exemplo, se você aumentou o número de previsões para 20, os valores das linhas 6 a 20 serão iguais, All-Purpose Bike Stand.
Voltar ao início
Lista de funções
Todos os algoritmos da Microsoft oferecem suporte a um conjunto de funções comum. No entanto, o algoritmo Microsoft Sequence Clustering dá suporte às funções adicionais relacionadas na tabela a seguir.
Para obter uma lista das funções comuns a todos os algoritmos Microsoft, consulte Mapeando funções para tipos de consulta (DMX). Para obter a sintaxe de funções específicas, consulte Referência de função de DMX (Data Mining Extensions).
Consulte também