Partilhar via


Exemplos de consulta de modelo de árvores de decisão

Ao criar uma consulta em relação a um modelo de mineração de dados, você pode criar uma consulta de conteúdo, que fornece detalhes sobre os padrões descobertos na análise ou você pode criar uma consulta de previsão, que usa os padrões no modelo para fazer previsões para novos dados. Por exemplo, uma consulta de conteúdo para um modelo de árvores de decisão pode fornecer estatísticas sobre o número de casos em cada nível da árvore ou as regras que diferenciam entre os casos. Como alternativa, uma consulta de previsão mapeia o modelo para novos dados para gerar recomendações, classificações e assim por diante. Você também pode recuperar metadados sobre o modelo usando uma consulta.

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

Consultas de conteúdo

Recuperando parâmetros de modelo do conjunto de linhas de esquema de mineração de dados

Obtendo detalhes sobre árvores no modelo usando DMX

Recuperando subárvores do modelo

Consultas de previsão

Retornando previsões com probabilidades

Prever associações de um modelo de árvores de decisão

Recuperando uma fórmula de regressão de um modelo de árvores de decisão

Localizando informações sobre um modelo de árvores de decisão

Para criar consultas significativas no conteúdo de um modelo de árvores de decisão, você deve entender a estrutura do conteúdo do modelo e quais tipos de nó armazenam que tipo de informação. Para obter mais informações, consulte o Conteúdo do Modelo de Mineração para Modelos de Árvore de Decisão (Analysis Services – Mineração de Dados).

Consulta de exemplo 1: Recuperando parâmetros de modelo do conjunto de linhas de esquema de mineração de dados

Consultando o conjunto de linhas do esquema de mineração de dados, você pode encontrar metadados sobre o modelo, como quando ele foi criado, quando o modelo foi processado pela última vez, o nome da estrutura de mineração na qual o modelo se baseia e o nome da coluna usada como atributo previsível. Você também pode retornar os parâmetros que foram usados quando o modelo foi criado pela primeira vez.

select MINING_PARAMETERS   
from $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = 'TM_Decision Tree'  

Resultados de exemplo:

PARÂMETROS_DE_MINERAÇÃO

COMPLEXITY_PENALTY=0,5, MAXIMUM_INPUT_ATTRIBUTES=255, MAXIMUM_OUTPUT_ATTRIBUTES=255, MINIMUM_SUPPORT=10, SCORE_METHOD=4, SPLIT_METHOD=3, FORCE_REGRESSOR=

Consulta de exemplo 2: retornando detalhes sobre o conteúdo do modelo usando DMX

A consulta a seguir retorna algumas informações básicas sobre as árvores de decisão que foram criadas quando você criou o modelo no Tutorial básico de mineração de dados. Cada estrutura de árvore é armazenada em seu próprio nó. Como esse modelo contém um único atributo previsível, há apenas um nó de árvore. No entanto, se você criar um modelo de associação usando o algoritmo Árvores de Decisão, poderá haver centenas de árvores, uma para cada produto.

Essa consulta retorna todos os nós do tipo 2, que são os nós de nível superior de uma árvore que representa um atributo previsível específico.

Observação

A coluna deve CHILDREN_CARDINALITYestar entre colchetes para distingui-la da palavra-chave reservada MDX de mesmo nome.

SELECT MODEL_NAME, NODE_NAME, NODE_CAPTION,   
NODE_SUPPORT, [CHILDREN_CARDINALITY]  
FROM TM_DecisionTrees.CONTENT  
WHERE NODE_TYPE = 2  

Resultados do exemplo:

MODEL_NAME NODE_NAME NODE_CAPTION NODE_SUPPORT CARDINALIDADE_DOS_FILHOS
TM_DecisionTree 000000001 Todos 12939 5

O que esses resultados lhe dizem? Em um modelo de árvores de decisão, a cardinalidade de um nó específico informa quantos filhos imediatos esse nó tem. A cardinalidade desse nó é 5, o que significa que o modelo dividiu a população-alvo de potenciais compradores de bicicletas em cinco subgrupos.

A consulta relacionada a seguir retorna os filhos desses cinco subgrupos, juntamente com a distribuição de atributos e valores nos nós filho. Como estatísticas como suporte, probabilidade e variação são armazenadas na tabela aninhada, NODE_DISTRIBUTIONeste exemplo usa a FLATTENED palavra-chave para gerar as colunas de tabela aninhadas.

Observação

A coluna SUPPORTda tabela aninhada deve estar entre colchetes para distingui-la da palavra-chave reservada de mesmo nome.

SELECT FLATTENED NODE_NAME, NODE_CAPTION,  
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE, [SUPPORT]  
FROM NODE_DISTRIBUTION) AS t  
FROM TM_DecisionTree.CONTENT  
WHERE [PARENT_UNIQUE_NAME] = '000000001'  

Resultados do exemplo:

NODE_NAME NODE_CAPTION T.ATTRIBUTE_NAME T.ATTRIBUTE_VALUE APOIO
00000000100 Número de Carros Possuídos = 0 Comprador de Bicicletas Em falta 0
00000000100 Número de Carros Possuídos = 0 Comprador de Bicicletas 0 1067
00000000100 Número de Carros Possuídos = 0 Comprador de Bicicletas 1 1875
00000000101 Número de carros possuídos = 3 Comprador de Bicicletas Em falta 0
00000000101 Número de carros que possui = 3 Comprador de Bicicletas 0 678
00000000101 Número de carros possuídos = 3 Comprador de Bicicletas 1 473

A partir desses resultados, você pode informar que dos clientes que compraram uma bicicleta ([Bike Buyer] = 1), 1.067 clientes tinham 0 carros e 473 clientes tinham 3 carros.

Consulta de exemplo 3: recuperando subárvores do modelo

Suponha que você queria descobrir mais sobre os clientes que compraram uma bicicleta. Você pode visualizar detalhes adicionais para qualquer uma das subárvores usando a função IsDescendant (DMX) na consulta, conforme mostrado no exemplo a seguir. A consulta retorna a contagem de compradores de bicicletas recuperando nós folha (NODE_TYPE = 4) da árvore que contém clientes com mais de 42 anos de idade. A consulta restringe as linhas da tabela aninhada para aquelas em que o Comprador de Bicicleta = 1.

SELECT FLATTENED NODE_NAME, NODE_CAPTION,NODE_TYPE,  
(  
SELECT [SUPPORT] FROM NODE_DISTRIBUTION WHERE ATTRIBUTE_NAME = 'Bike Buyer' AND ATTRIBUTE_VALUE = '1'  
) AS t  
FROM TM_DecisionTree.CONTENT  
WHERE ISDESCENDANT('0000000010001')  
AND NODE_TYPE = 4  

Resultados do exemplo:

NODE_NAME NODE_CAPTION t.SUPPORT
000000001000100 Renda >Anual = 26000 e < 42000 266
00000000100010100 Total de filhos = 3 75
0000000010001010100 Número de crianças em casa = 1 75

Fazendo previsões usando um modelo de árvores de decisão

Como as árvores de decisão podem ser usadas para várias tarefas, incluindo classificação, regressão e até associação, quando você cria uma consulta de previsão em um modelo de árvore de decisão, você tem muitas opções disponíveis para você. Você deve entender a finalidade para a qual o modelo foi criado para entender os resultados da previsão. Os exemplos de consulta a seguir ilustram três cenários diferentes:

  • Retornando uma previsão para um modelo de classificação, juntamente com a probabilidade da previsão estar correta e filtrando os resultados pela probabilidade;

  • Criando uma consulta singleton para prever associações;

  • Recuperando a fórmula de regressão para uma parte de uma árvore de decisão em que a relação entre a entrada e a saída é linear.

Consulta de exemplo 4: Retornando previsões com probabilidades

A consulta de exemplo a seguir usa o modelo de árvore de decisão que foi criado no Tutorial básico de mineração de dados. A consulta utiliza um novo conjunto de dados de exemplo, da tabela dbo.ProspectiveBuyers no AdventureWorks2012 DW, para prever quais dos clientes no novo conjunto de dados comprarão uma bicicleta.

A consulta usa a função de previsão PredictHistogram (DMX), que retorna uma tabela aninhada que contém informações úteis sobre as probabilidades descobertas pelo modelo. A cláusula WHERE final da consulta filtra os resultados para retornar somente os clientes que são previstos como propensos a comprar uma bicicleta, com uma probabilidade maior que 0%.

SELECT  
  [TM_DecisionTree].[Bike Buyer],  
  PredictHistogram([Bike Buyer]) as Results  
From  
  [TM_DecisionTree]  
PREDICTION JOIN  
  OPENQUERY([Adventure Works DW Multidimensional 2012],  
    'SELECT  
      [FirstName],  
      [LastName],  
      [MaritalStatus],  
      [Gender],  
      [YearlyIncome],  
      [TotalChildren],  
      [NumberChildrenAtHome],  
      [HouseOwnerFlag],  
      [NumberCarsOwned]  
    FROM  
      [dbo].[ProspectiveBuyer]  
    ') AS t  
ON  
  [TM_DecisionTree].[First Name] = t.[FirstName] AND  
  [TM_DecisionTree].[Last Name] = t.[LastName] AND  
  [TM_DecisionTree].[Marital Status] = t.[MaritalStatus] AND  
  [TM_DecisionTree].[Gender] = t.[Gender] AND  
  [TM_DecisionTree].[Yearly Income] = t.[YearlyIncome] AND  
  [TM_DecisionTree].[Total Children] = t.[TotalChildren] AND  
  [TM_DecisionTree].[Number Children At Home] = t.[NumberChildrenAtHome] AND  
  [TM_DecisionTree].[House Owner Flag] = t.[HouseOwnerFlag] AND  
  [TM_DecisionTree].[Number Cars Owned] = t.[NumberCarsOwned]  
WHERE [Bike Buyer] = 1  
AND PredictProbability([Bike Buyer]) >'.05'  

Por padrão, o Analysis Services retorna tabelas aninhadas com o rótulo de coluna, Expressão. Você pode alterar esse rótulo criando um alias para a coluna retornada. Se você fizer isso, o alias (nesse caso, Resultados) será usado como o título da coluna e como o valor na tabela aninhada. Você deve expandir a tabela aninhada para ver os resultados.

Resultados de exemplo em que Comprador de Bicicleta = 1:

Comprador de Bicicletas $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY $VARIANCE $STDEV
1 2540 0.634849242045644 0.013562168281562 0 0
0 1460 0.364984174579377 0.00661336932550915 0 0
0 0.000166583374979177 0.000166583374979177 0 0

Se o provedor não der suporte a conjuntos de linhas hierárquicas, como os mostrados aqui, você poderá usar a palavra-chave FLATTENED na consulta para retornar os resultados como uma tabela que contém nulos no lugar dos valores de coluna repetidos. Para obter mais informações, consulte Tabelas Aninhadas (Analysis Services – Mineração de Dados) ou noções básicas sobre a instrução DMX Select.

Consulta de exemplo 5: Prever associações de um modelo de árvores de decisão

A consulta de exemplo a seguir baseia-se na estrutura de mineração da Associação. Para acompanhar este exemplo, você pode adicionar um novo modelo a essa estrutura de mineração e selecionar Árvores de Decisão da Microsoft como o algoritmo. Para obter mais informações sobre como criar a estrutura de mineração de associação, consulte a Lição 3: Criando um cenário de cesta de mercado (Tutorial de mineração de dados intermediário).

A consulta de exemplo a seguir é uma consulta singleton, que você pode criar facilmente no SSDT (SQL Server Data Tools) escolhendo campos e selecionando valores para esses campos em uma lista suspensa.

SELECT PredictAssociation([DT_Association].[v Assoc Seq Line Items],3)  
FROM  
  [DT_Association]  
NATURAL PREDICTION JOIN  
(SELECT (SELECT 'Patch kit' AS [Model]) AS [v Assoc Seq Line Items]) AS t  

Resultados esperados:

Modelo
Montanha-200
Tubo de pneu da montanha
Tubo de pneu de touring

Os resultados informam os três melhores produtos a serem recomendados aos clientes que compraram o produto Patch Kit. Você também pode fornecer vários produtos como entrada ao fazer recomendações, digitando valores ou usando a caixa de diálogo Entrada de Consulta Singleton e adicionando ou removendo valores. A consulta de exemplo a seguir mostra como os vários valores são fornecidos, nos quais fazer uma previsão. Os valores são conectados por uma cláusula UNION na instrução SELECT que define os valores de entrada.

SELECT PredictAssociation([DT_Association].[v Assoc Seq Line Items],3)  
From  
  [DT_Association]  
NATURAL PREDICTION JOIN  
(SELECT (SELECT 'Racing Socks' AS [Model]  
  UNION SELECT 'Women''s Mountain Shorts' AS [Model]) AS [v Assoc Seq Line Items]) AS t  

Resultados esperados:

Modelo
Camisa Logotipo Long-Sleeve
Mountain-400-W
Colete Clássico

Consulta de exemplo 6: recuperando uma fórmula de regressão de um modelo de árvores de decisão

Ao criar um modelo de árvore de decisão que contenha uma regressão em um atributo contínuo, você pode usar a fórmula de regressão para fazer previsões ou extrair informações sobre a fórmula de regressão. Para obter mais informações sobre consultas em modelos de regressão, consulte exemplos de consulta de modelo de regressão linear.

Se um modelo de árvores de decisão contiver uma mistura de nós de regressão e nós que se dividem em atributos ou intervalos discretos, você poderá criar uma consulta que retorna apenas o nó de regressão. A tabela NODE_DISTRIBUTION contém os detalhes da fórmula de regressão. Neste exemplo, as colunas são simplificadas e a tabela NODE_DISTRIBUTION recebe um alias para facilitar a visualização. No entanto, nesse modelo, nenhum regressor foi encontrado para relacionar a Renda com outros atributos contínuos. Nesses casos, o Analysis Services retorna o valor médio do atributo e a variação total no modelo para esse atributo.

SELECT FLATTENED NODE_DISTRIBUTION AS t  
FROM DT_Predict. CONTENT  
WHERE NODE_TYPE = 25  

Resultados do exemplo:

t.ATTRIBUTE_NAME t.ATTRIBUTE_VALUE t.SUPPORT t.PROBABILIDADE t.VARIANCE t.VALUETYPE
Renda Anual Em falta 0 0.000457142857142857 0 1
Renda Anual 57220.8876687257 17484 0,999542857142857 1041275619.52776 3
57220.8876687257 0 0 1041216662.54387 11

Para obter mais informações sobre os tipos de valor e as estatísticas usadas em modelos de regressão, consulte o Conteúdo do Modelo de Mineração para Modelos de Regressão Linear (Analysis Services – Mineração de Dados).

Lista de funções de previsão

Todos os algoritmos da Microsoft dão suporte a um conjunto comum de funções. No entanto, o algoritmo Árvores de Decisão da Microsoft dá suporte às funções adicionais listadas na tabela a seguir.

Função de previsão Uso
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.
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 uma lista das funções comuns a todos os algoritmos da Microsoft, consulte DMX (Funções de Previsão Geral). 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
O Algoritmo de Árvores de Decisão da Microsoft
Referência técnica do algoritmo Árvores de Decisão da Microsoft
Conteúdo do modelo de mineração para modelos de árvore de decisão (Analysis Services – Mineração de dados)