Consultas de Conteúdo (Mineração de Dados)

Aplica-se a: SQL Server 2019 e anteriores 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 descontinuada no SQL Server 2022 Analysis Services. A documentação não é atualizada para recursos preteridos e descontinuados. Para saber mais, consulte Compatibilidade com versões anteriores do Analysis Services.

Uma consulta de conteúdo é uma forma de extrair informação sobre as estatísticas internas e a estrutura do modelo de mineração. Por vezes, uma consulta de conteúdo pode fornecer detalhes que não estão facilmente disponíveis no leitor. Também pode usar os resultados de uma consulta de conteúdo para extrair informação programaticamente para outros usos.

Esta secção fornece informações gerais sobre os tipos de informação que pode obter usando uma consulta de conteúdo, bem como a sintaxe geral DMX para consultas de conteúdo.

Consultas de Conteúdo Básico

Examples

Trabalhar com os Resultados da Consulta

Consultas de Conteúdo Básico

Pode criar consultas de conteúdo usando o Prediction Query Builder, usar os modelos de consultas de conteúdo DMX fornecidos no SQL Server Management Studio, ou escrever consultas diretamente em DMX. Ao contrário das consultas de previsão, não é necessário juntar dados externos, por isso as consultas de conteúdo são fáceis de escrever.

Esta secção apresenta uma visão geral dos tipos de consultas de conteúdo que pode criar.

  • Consultas na estrutura de mineração ou nos dados do caso permitem-lhe ver os dados detalhados usados para o treino.

  • Consultas no modelo podem devolver padrões, listas de atributos, fórmulas, e assim por diante.

Consultas sobre Estrutura e Dados de Casos

O DMX suporta consultas nos dados em cache que são usados para construir estruturas e modelos de mineração. Por defeito, este cache é criado quando se define a estrutura de mineração, e é preenchido quando se processa a estrutura ou modelo.

Advertência

Esta cache não pode ser apagada ou eliminada se for necessário separar os dados em conjuntos de treino e teste. Se a cache for limpa, não pode consultar os dados do caso.

Os exemplos seguintes mostram os padrões comuns para criar consultas aos dados do caso, ou consultas aos dados na estrutura de mineração:

Obtenha todas as malas para um modelo
SELECT FROM <model>.CASES

Use esta instrução para recuperar colunas especificadas dos dados do caso usados para construir um modelo. É necessário ter permissões de drillthrough no modelo para executar esta consulta.

Veja todos os dados incluídos na estrutura
SELECT FROM <structure>.CASES

Use esta instrução para visualizar todos os dados incluídos na estrutura, incluindo colunas que não estão incluídas num determinado modelo de mineração. Deve ter permissões de perfuração tanto no modelo, como na estrutura, para obter dados da estrutura de mineração.

Obtenha intervalo de valores
SELECT DISTINCT RangeMin(<column>), RangeMax(<column>) FROM <model>

Use esta instrução para encontrar o valor mínimo, valor máximo e média de uma coluna contínua, ou dos baldes de uma coluna DISCRETIZADA.

Obtenha valores distintos
SELECT DISTINCT <column>FROM <model>

Use esta instrução para recuperar todos os valores de uma coluna DISCRETA. Não use esta instrução para colunas DISCRETIZADAS; usar as funções RangeMin e RangeMax em vez disso.

Encontre os casos que foram usados para treinar um modelo ou estrutura
SELECT FROM <mining structure.CASES WHERE IsTrainingCase()

Use esta instrução para obter o conjunto completo de dados usados num modelo de treino.

Encontre os casos que são usados para testar um modelo ou estrutura
SELECT FROM <mining structure.CASES WHERE IsTestingCase()

Use esta instrução para obter os dados que foram reservados para testar modelos de mineração relacionados com uma estrutura específica.

Perfuração a partir de um padrão de modelo específico para os dados do caso subjacente
SELECT FROM <model>.CASESWHERE IsTrainingCase() AND IsInNode(<node>)

Use esta declaração para obter dados detalhados de casos de um modelo treinado. Deve especificar um nó específico: por exemplo, deve conhecer o ID do nó do cluster, o ramo específico da árvore de decisão, etc. Além disso, deve ter permissões de drillthrough no modelo para executar esta consulta.

Consultas sobre Padrões de Modelo, Estatísticas e Atributos

O conteúdo de um modelo de mineração de dados é útil para muitos propósitos. Com uma consulta de conteúdo modelo, pode:

  • Extrai fórmulas ou probabilidades para fazer os teus próprios cálculos.

  • Para um modelo de associação, recupere as regras que são usadas para gerar uma previsão.

  • Recupera as descrições de regras específicas para que possas usar as regras numa aplicação personalizada.

  • Veja as médias móveis detetadas por um modelo de séries temporais.

  • Obtenha a fórmula de regressão para algum segmento da linha de tendência.

  • Recuperar informações acionáveis sobre clientes identificados como pertencentes a um cluster específico.

Os exemplos seguintes mostram alguns dos padrões comuns para criar consultas no conteúdo do modelo:

Obtenha padrões a partir do modelo
SELECT FROM <model>.CONTENT

Use esta instrução para obter informações detalhadas sobre nós específicos no modelo. Dependendo do tipo de algoritmo, o nó pode conter regras e fórmulas, suporte e estatísticas de variância, e assim por diante.

Recuperar atributos usados num modelo treinado
CALL System.GetModelAttributes(<model>)

Use este procedimento armazenado para recuperar a lista de atributos usados por um modelo. Esta informação é útil para determinar atributos que foram eliminados como resultado da seleção de características, por exemplo.

Recuperar conteúdo armazenado numa dimensão de mineração de dados
SELECT FROM <model>.DIMENSIONCONTENT

Use esta instrução para recuperar os dados de uma dimensão de mineração de dados.

Este tipo de consulta destina-se principalmente a uso interno. No entanto, nem todos os algoritmos suportam esta funcionalidade. O suporte é indicado por uma flag no conjunto de linhas do esquema MINING_SERVICES.

Se desenvolver o seu próprio algoritmo de plug-in, poderá usar esta afirmação para verificar o conteúdo do seu modelo para testes.

Obtenha a representação PMML de um modelo
SELECT * FROM <model>.PMML

Recebe um documento XML que representa o modelo em formato PMML. Nem todos os tipos de modelos são suportados.

Examples

Embora algum conteúdo do modelo seja padrão entre algoritmos, algumas partes do conteúdo variam muito dependendo do algoritmo que usaste para construir o modelo. Portanto, ao criar uma consulta de conteúdo, deve compreender que informação no modelo é mais útil para o seu modelo específico.

Alguns exemplos são fornecidos nesta secção para ilustrar como a escolha do algoritmo afeta o tipo de informação armazenada no modelo. Para mais informações sobre o conteúdo dos modelos de mineração e o conteúdo específico de cada tipo de modelo, consulte Conteúdo do Modelo de Mineração (Serviços de Análise - Mineração de Dados).

Exemplo 1: Consulta de Conteúdo num Modelo de Associação

A instrução, SELECT FROM <model>.CONTENT, devolve diferentes tipos de informação, dependendo do tipo de modelo que está a consultar. Para um modelo de associação, uma peça-chave de informação é o tipo de nó. Os nós são como recipientes para a informação no conteúdo do modelo. Num modelo de associação, nós que representam regras têm um valor NODE_TYPE 8, enquanto nós que representam conjuntos de itens têm um valor NODE_TYPE 7.

Assim, a consulta seguinte devolve os 10 melhores itemsets, ordenados por suporte (a ordem padrão).

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

A consulta seguinte baseia-se nesta informação. A consulta devolve três colunas: o ID do nó, a regra completa e o produto no lado direito do conjunto de itens — ou seja, o produto que se prevê estar associado a outros produtos como parte de um conjunto de itens.

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  

A palavra-chave FLATTENED indica que o conjunto de linhas aninhado deve ser convertido numa tabela achatada. O atributo que representa o produto no lado direito da regra está contido na tabela NODE_DISTRIBUTION; Por isso, recuperamos apenas a linha que contém o nome de um atributo, adicionando o requisito de que o comprimento seja superior a 2.

Uma função simples de cadeia é usada para remover o nome do modelo da terceira coluna. (Normalmente, o nome do modelo é precedido pelos valores das colunas aninhadas.)

A cláusula WHERE especifica que o valor de NODE_TYPE deve ser 8, para recuperar apenas regras.

Para mais exemplos, veja Exemplos de Consultas de Modelos de Associação.

Exemplo 2: Consulta de Conteúdo num Modelo de Árvores de Decisão

Um modelo de árvore de decisão pode ser usado tanto para previsão como para classificação. Este exemplo assume que está a usar o modelo para prever um resultado, mas também quer descobrir que fatores ou regras podem ser usados para classificar o resultado.

Num modelo de árvore de decisão, os nós são usados para representar tanto árvores como nós folha. A legenda de cada nó contém a descrição do caminho para o resultado. Portanto, para traçar o caminho para qualquer resultado em particular, é necessário identificar o nó que o contém e obter os detalhes desse nó.

Na sua consulta de previsão, adiciona a função de predição PredictNodeId (DMX) para obter o ID do nó relacionado, como mostrado no exemplo seguinte:

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

Depois de obter o ID do nó que contém o resultado, pode obter a regra ou caminho que explica a previsão criando uma consulta de conteúdo que inclua o NODE_CAPTION, da seguinte forma:

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

Para mais exemplos, veja Exemplos de Consultas de Modelos de Árvores de Decisão.

Trabalhar com os Resultados da Consulta

Como demonstram os exemplos, as consultas de conteúdo retornam maioritariamente conjuntos de linhas tabulares, mas também podem incluir informação proveniente de colunas aninhadas. Podes achatar o conjunto de linhas que é devolvido, mas isso pode tornar o trabalho com resultados mais complexo. O conteúdo do nó NODE_DISTRIBUTION, em particular, é aninhado, mas contém muita informação interessante sobre o modelo.

Para mais informações sobre como trabalhar com conjuntos de linhas hierárquicos, consulte a especificação OLEDB em MSDN.

Ver também

Compreender a instrução DMX Select
Consultas de Mineração de Dados