Consultando modelos de mineração de dados (Analysis Services - Mineração de dados)

Após treinar em um modelo de mineração de dados, você pode esperar o modelo usando os visualizadores personalizados fornecidos no SQL Server Management Studio ou no Business Intelligence Development Studio. No entanto, se desejar fazer previsões ou obter informações avançadas ou mais específicas sobre o modelo, crie uma consulta para o modelo de mineração de dados. As consultas ajudam você a entender melhor e funcionam com as informações do modelo das seguintes maneiras:

  • Fazendo previsões únicas e em lotes.

  • Obtendo mais informações sobre os padrões localizados pelo modelo.

  • Exibindo os detalhes ou os casos de treinamento para um padrão específico ou subconjunto do modelo.

  • Fazendo o detalhamento dos casos no modelo de mineração.

  • Extraindo fórmulas, regras ou estatísticas de todo o modelo e dos dados ou de um subconjunto deles.

O SQL Server Analysis Services fornece uma interface de design gráfico para criar consultas e também uma linguagem de consulta chamada DMX, que é útil para criar previsões personalizadas e consultas complexas. Para criar consultas de previsão DMX, comece com os construtores de consultas que estão disponíveis no SQL Server Management Studio e no Business Intelligence Development Studio. Um conjunto de modelos de consulta DMX também é fornecido no SQL Server Management Studio.

Para obter mais informações sobre como usar o construtor de consultas, consulte Usando o construtor de consultas de previsão para criar consultas de previsão DMX.

Para obter mais informações sobre como usar modelos de consulta DMX, consulte Criando consultas de DMX no SQL Server Management Studio ou Como usar modelos no SQL Server Management Studio.

Esta seção descreve os tipos de consulta que podem ser criados e as informações fornecidas por cada tipo de consulta. Esta seção também inclui exemplos de consultas para tipos específicos de modelos de mineração de dados.

  • Consultas de previsão

    • Consultas de previsão singleton

    • Consultas de previsão em lotes

    • Previsões de série temporal

  • Consultas de conteúdo

  • Consultas de definição de dados

Consultas de previsão

O principal objetivo de muitos projetos de mineração de dados é usar os modelos de mineração para fazer previsões. Por exemplo, você talvez queira prever quantos produtos sua empresa venderá no próximo ano durante o mês de dezembro ou se um cliente em potencial vai adquirir um produto em resposta a uma campanha publicitária.

Ao criar uma previsão, você normalmente fornece alguns dados novos e solicita ao modelo para gerar uma previsão com base nos dados novos. Para fazer previsões em lotes, mapeie o modelo para uma fonte de dados externa em uma junção de previsão. Se preferir, forneça um valor por vez criando uma consulta singleton.

As consultas de previsão singleton e em lotes usam a sintaxe PREDICTION JOIN para definir os novos dados: a diferença está no modo como a entrada da junção da previsão é especificada. Em uma consulta singleton, os dados são fornecidos embutidos como parte da consulta. Em uma consulta em lotes, os dados vêm de uma fonte de dados externa especificada com o uso da consulta OPENQUERY. Para obter mais informações, consulte OPENQUERY (DMX).

Além disso, os modelos de série temporal permitem fazer previsões baseadas apenas no modelo - você não precisa fornecer nenhum dado novo, só precisa solicitar previsões baseadas nas séries existentes.

A seção a seguir fornece informações sobre como criar cada tipo de consulta.

Tipo de consulta

Opções de consulta

Consulta de previsão singleton

Faça previsões sobre um único caso novo ou sobre vários casos novos digitados na consulta.

Previsões em lotes

Mapeie novos casos em uma fonte de dados externa para o modelo e faça previsões.

Previsões de série temporal

Preveja um número específico de etapas futuras, com base em um modelo existente.

Estenda um modelo existente adicionando dados novos e faça previsões baseadas na série composta.

Aplique o modelo existente a uma nova série de dados usando a opção REPLACE_MODEL_CASES.

Além de prever um valor específico, como a quantidade de vendas do próximo mês ou um produto a ser recomendado para um cliente, é possível personalizar uma consulta de previsão para retornar vários tipos de informações relacionadas à previsão. Por exemplo, talvez seja útil saber a probabilidade de exatidão de uma previsão para decidir se a recomendação deve ser apresentada ou não ao usuário.

Para personalizar as informações retornadas por uma consulta de previsão, adicione funções de previsão à consulta. Cada modelo ou tipo de consulta dá suporte a funções específicas. Por exemplo, os modelos de clustering suportam funções de previsão especiais que fornecem detalhes adicionais sobre os agrupamentos criados pelo modelo. Os modelos de série temporal oferecem suporte a funções de previsão que calculam diferenças com o passar do tempo. Também há funções de previsão gerais que funcionam com quase todos os tipos de modelo. Para obter uma lista das funções de previsão com suporte em tipos diferentes de consultas, consulte Mapeando funções para tipos de consulta (DMX). Para obter uma lista completa das funções de previsão, consulte Referência de função de DMX (Data Mining Extensions).

Voltar ao início

Consultas singleton

Uma consulta singleton é útil quando você deseja criar previsões simples em tempo real. Por exemplo, você pode obter informações de um cliente usando um site e, em seguida, usar esses dados para retornar previsões, apresentadas como recomendações específicas para esse cliente. Se preferir, você pode analisar o conteúdo de um email e usar um modelo de classificação existente para atribuir uma categoria ao email e rotear a mensagem de modo adequado.

As consultas singleton não requerem uma tabela separada que contém entrada. Em vez disso, é transmitida uma única linha de dados para o modelo e uma única previsão é retornada em tempo real. Você também pode estender a consulta singleton para fazer várias previsões digitando uma instrução SELECT que contenha um único caso, adicionar o operador UNION e digitar outra instrução SELECT para especificar outro caso.

Você pode criar consultas singleton em um modelo existente dos seguintes modos:

  • Usando o Designer de Mineração de Dados.

  • Usando um modelo de consulta singleton.

  • Criando uma instrução DMX programaticamente ou em outro cliente do Analysis Services.

Ao criar uma consulta singleton, é necessário fornecer os novos dados ao modelo na forma de uma JUNÇÃO DE PREVISÃO. Isso significa que, mesmo que não esteja mapeando para uma tabela real, você deve verificar se os novos dados correspondem às colunas existentes no modelo de mineração. Se as colunas dos novos dados e os novos dados corresponderem de modo exato, o Analysis Services mapeará as colunas. Isto é chamado de JUNÇÃO DE PREVISÃO NATURAL. No entanto, se as colunas não coincidirem ou se os novos dados não tiverem o mesmo tipo e quantidade de dados do modelo, especifique quais colunas do modelo devem ser mapeadas para os novos dados ou especifique os valores ausentes.

Para obter informações sobre como criar uma consulta singleton no Designer de Mineração de Dados, consulte Como criar uma consulta Singleton no Designer de Mineração de Dados e Usando o construtor de consultas de previsão para criar consultas de previsão DMX.

Para obter informações sobre como usar o DMX para criar uma consulta singleton, consulte Consultas de previsão (DMX).

Para obter um exemplo de como usar os modelos de consulta DMX no SQL Server Management Studio, consulte Como criar uma consulta de previsão singleton a partir de um modelo.

Voltar ao início

Consultas de previsão em lotes

Ao executar uma junção de previsão, você mapeia o modelo para uma nova fonte de dados e o Analysis Services faz previsões para cada linha dos novos dados com base nos padrões do modelo. A junção de previsão é útil quando existem muitas informações em uma tabela ou outras fontes de dados externas e você deseja fazer previsões com o modelo treinado.

Você pode criar consultas de previsão em lotes para um modelo existente dos seguintes modos:

  • Usando o Designer de Mineração de Dados.

  • Usando um modelo.

  • Criando uma instrução DMX programaticamente ou em outro cliente do Analysis Services.

  • Se você criar uma consulta de previsão em lotes usando o Designer de Mineração de Dados, as fontes de dados externas devem ser definidas primeiro como uma exibição da fonte de dados.

Se a linguagem DMX for usada para criar uma junção de previsão, especifique a fonte de dados externa usando os comandos OPENQUERY, OPENROWSET ou SHAPE. O método de acesso aos dados padrão nos modelos DMX é OPENQUERY. Para obter mais informações sobre esses métodos, consulte <consulta de dados de origem>.

Independentemente de como os dados externos são definidos, a fonte de dados especificada deve conter colunas com os mesmos dados do modelo. No entanto, as novas informações podem estar incompletas. Por exemplo, sua lista de clientes pode ter uma coluna Idade, mas nenhuma informação sobre renda. Mesmo que os dados de renda fossem usados durante o treinamento do modelo, você ainda poderia mapear os novos dados para o modelo e criar uma previsão; no entanto, em alguns casos, a falta de informações completas talvez afete a qualidade das previsões.

Para obter os melhores resultados, faça a junção do máximo de colunas correspondentes possível entre os novos dados e o modelo. No entanto, a consulta será bem-sucedida mesmo se não houver nenhuma correspondência. Se nenhuma coluna for unida, a consulta retornará a previsão marginal, que é equivalente à instrução SELECT <predictable-column> FROM <model> sem uma cláusula PREDICTION JOIN.

Trabalhando com os resultados de uma consulta de previsão

Uma consulta de previsão não é igual a uma consulta em um banco de dados relacional. Cada função de previsão adicionada a uma consulta retorna seu próprio conjunto de linhas. Portanto, ao fazer previsões em um único caso, o resultado pode ser um valor estimado junto com várias colunas de tabelas aninhadas que contêm detalhes adicionais.

Sempre que você combina várias funções em uma consulta, os resultados retornados são combinados como um conjunto de linhas hierárquico. No entanto, se o provedor não puder manipular conjuntos de linhas hierárquicos, você poderá mesclar os resultados usando a palavra-chave FLATTEN na consulta de previsão.

Para obter mais informações, inclusive exemplos de conjuntos de linhas bidimensionais, consulte SELECT (DMX).

Previsões em modelos de mineração de série temporal

Os modelos de série temporal fornecem mais flexibilidade no modo como você pode usar novos dados e criar previsões. É possível usar o modelo no estado em que se encontra para criar previsões ou fornecer novos dados ao modelo para atualizar as previsões com base nas tendências recentes. Se novos dados forem adicionados, especifique como eles devem ser usados, seja para estender os casos do modelo ou para substituí-los.

Ao estender os casos do modelo, adicione novos dados de fato ao modelo de série temporal e faça mais previsões baseadas nas novas séries combinadas. Ao substituir os casos do modelo, mantenha o modelo treinado, mas substitua os casos subjacentes por um novo conjunto de dados de caso.

Independentemente da abordagem usada, o ponto de partida para previsões sempre é o término da série original.

Por exemplo, imagine que você tenha um modelo de série temporal existente treinado nos dados de vendas do ano anterior. Após coletar vários meses de novos dados de vendas, você decide atualizar suas previsões de vendas para o ano atual. Você pode criar uma junção de previsão que atualize o modelo adicionando novos dados e que estenda o modelo para fazer novas previsões.

Se preferir, crie seu modelo com base nos dados existentes e, em seguida, crie uma junção de previsão que substitua os dados de caso por novos dados. Isso é útil se, por exemplo, em um armazenamento estiver faltando vários dados e você desejar usar um modelo incorporado em outro armazenamento de dados para fazer previsões. Para obter mais informações sobre como criar junções de previsão em modelos de série temporal, consulte Consultando modelos de série temporal ou PredictTimeSeries (DMX).

Voltar ao início

Consultas de conteúdo

Uma consulta de conteúdo é um modo de extrair informações sobre as estatísticas internas e a estrutura do modelo de mineração propriamente dito. Às vezes uma consulta de conteúdo pode fornecer detalhes que não estão prontamente disponível no visualizador. Você também pode usar os resultados de uma consulta de conteúdo para extrair informações programaticamente por outros usos. Por exemplo, você pode extrair fórmulas ou probabilidades para fazer seus próprios cálculos ou recuperar informações acionáveis sobre os casos em um modelo.

Esta seção fornece informações gerais sobre os tipos de informações que podem ser recuperadas com uma consulta de conteúdo. As consultas de conteúdo usam a sintaxe DMX mostrada na tabela a seguir:

Tipo de consulta

Opções de consulta

SELECT FROM <model>.CASES

Encontre os casos usados para treinar ou testar um modelo. Extraia detalhes nos dados, inclusive colunas na estrutura de mineração subjacente.

SELECT FROM <structure>.CASES

Exiba todos os dados incluídos na estrutura, incluindo as colunas que não foram adicionadas a um modelo de mineração específico.

SELECT FROM <modelo>.CONTENT

Recupere informações detalhadas sobre nós específicos do modelo, incluindo regras e fórmulas, estatísticas de suporte e variação etc.

SELECT FROM <model>.DIMENSIONCONTENT

Dá suporte a consultas em uma dimensão de mineração de dados.

Esse tipo de consulta destina-se principalmente ao uso interno. Se você desenvolver seu próprio algoritmo de plug-in, poderá usar essa sintaxe para testar seus modelos.

Nem todos os algoritmos suportam esta funcionalidade. O suporte é indicado por um sinalizador no conjunto de linhas do esquema MINING_SERVICES.

Alguns conteúdos de modelo são padrão entre algoritmos. No entanto, em geral, o conteúdo de cada modelo depende do algoritmo usado para criar o modelo. Desse modo, ao criar uma consulta de conteúdo, você precisa saber que tipo de informação do modelo é mais útil.

Por exemplo, se você criar uma consulta que usa a sintaxe SELECT FROM <model>.CONTENT , a consulta retornará informações muito diferentes se o modelo for um modelo de cluster de seqüência, de árvores de decisão ou de série temporal. Para um modelo de associação, você talvez queira recuperar as descrições de regras específicas a serem usadas em um aplicativo personalizado, seja um modelo de série temporal ou de clustering de seqüência, ou obter mais informações sobre os padrões de tempo detectados pelo modelo.

Alguns exemplos são fornecidos nas seções a seguir para ilustrar o escopo das informações que podem ser obtidas de uma consulta de conteúdo; no entanto, para obter informações sobre o conteúdo do modelo de mineração e sobre o conteúdo específico de cada tipo de modelo, consulte Conteúdo do modelo de mineração (Analysis Services – Mineração de dados).

Exemplo 1: Consulta de conteúdo em um modelo de associação

Você pode usar uma instrução SELECT FROM <modelo>.CONTENT para retornar tipos de conteúdo diferentes, dependendo do tipo de modelo que está sendo consultado. Para os modelos de associação, os nós que representam regras têm o valor de NODE_TYPE igual a 8, enquanto os conjuntos de itens têm um valor de NODE_TYPE igual a 7. Assim, a consulta a seguir retornaria os 10 principais conjuntos de itens, classificados por suporte (a ordem padrão).

SELECT TOP 10 NODE_DESCRIPTION, NODE_PROBABILITY, SUPPORT
FROM <model>.CONTENT WHERE NODE_TYPE = 7

O exemplo a seguir retorna três colunas: a ID do nó, a regra completa e o produto na lateral direita do conjunto de itens, isto é, o produto previsto para ser associado a alguns outros produtos como parte de um conjunto de itens.

A palavra-chave FLATTENED indica que o conjunto de linhas aninhado deve ser convertido em uma tabela simples. O atributo que representa o produto na lateral direita da regra está contido na tabela NODE_DISTRIBUTION; portanto, recuperamos somente a linha que contém um nome de atributo, adicionando um requisito para que o comprimento seja maior do que 2. Uma função de cadeia de caracteres simples é usada para remover o nome do modelo da terceira coluna. Normalmente, o nome do modelo sempre é antecedido pelos valores de colunas aninhadas. A cláusula WHERE especifica que o valor de NODE_TYPE deve ser 8 para recuperar apenas regras.

SELECT FLATTENED NODE_UNIQUE_NAME , NODE_DESCRIPTION,
     (SELECT RIGHT(ATTRIBUTE_NAME, (LEN(ATTRIBUTE_NAME)-LEN('Association model name'))) 
FROM NODE_DISTRIBUTION
WHERE LEN(ATTRIBUTE_NAME)>2
) 
AS RightSideProduct
FROM [<Association model name>].CONTENT
WHERE NODE_TYPE = 8 
ORDER BY NODE_SUPPORT DESC

Para ver mais exemplos, consulte Consultando um modelo de associação (Analysis Services - Mineração de dados).

Exemplo 2: Consulta de conteúdo em um modelo de árvores de decisão

A consulta do conteúdo do modelo é útil quando você deseja acompanhar uma consulta de previsão retornando a regra que explica por que aquele estado foi previsto. Por exemplo, é possível adicionar a função de previsão PredictNodeId (DMX) a uma consulta para obter a ID do nó que contém a regra usando a seguinte sintaxe:

SELECT  Predict([Bike Buyer]), PredictNodeID([Bike Buyer]) 
FROM [<decision tree model name>]
PREDICTION JOIN 
<input rowset> 

Para um modelo de árvore de decisão, a legenda contém a descrição do caminho ao resultado. Assim, após obter a ID do nó que contém o resultado, você pode recuperar a regra ou o caminho que explica a previsão criando uma consulta de conteúdo, como a seguinte:

SELECT NODE_CAPTION
FROM [<decision tree model name>] 
WHERE NODE_UNIQUE_NAME= '<node id>'

Para ver mais exemplos, consulte Consultando um modelo de árvores de decisão (Analysis Services – Mineração de dados).

Voltar ao início

Consultas de definição de dados

O Analysis Services fornece uma variedade de instruções de definição de dados para criar e gerenciar estruturas e modelos de mineração. Para obter mais informações, consulte Gerenciando estruturas e modelos de mineração de dados.