Compartilhar via


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

Ao criar uma consulta para um modelo de mineração de dados, você pode criar uma consulta de conteúdo que fornece detalhes de padrões encontrados em análises ou 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 de cada nível da árvore ou as regras que diferenciam os casos. Como alternativa, uma consulta de previsão mapeia o modelo para novos dados para gerar recomendações, classificações e assim sucessivamente. Você também pode recuperar metadados sobre o modelo usando uma consulta.

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

Consultas de conteúdo

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

Obtendo detalhes sobre árvores no modelo através do DMX

Recuperando subárvores do modelo

Consultas de previsão

Retornando previsões com probabilidades

Prevendo 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 o modelo de árvores de decisão

Para criar consultas significativas no conteúdo de um modelo de árvores de decisão, você deve compreender 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 árvore de decisão (Analysis Services – Mineração de Dados).

Exemplo de consulta 1: recuperando parâmetros do conjunto de linhas do esquema de mineração de dados

Ao consultar um conjunto de linhas de esquema de mineração de dados, você pode encontrar metadados sobre o modelo, tais como quando ele foi criado, última vez em que foi processado, o nome da estrutura de mineração na qual o modelo é baseado 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.

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

Resultados do exemplo:

MINING_PARAMETERS

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

Retornar ao início

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

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

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

ObservaçãoObservação

A coluna CHILDREN_CARDINALITY deve estar entre parênteses 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

CHILDREN_CARDINALITY

TM_DecisionTree

000000001

Todos

12939

5

O que esses resultados significam para você? Em um modelo de árvores de decisão, a cardinalidade de um nó específico indica quantos filhos imediatos aquele nó contém. A cardinalidade desse nó é 5, o que indica que o modelo dividiu a população alvo de consumidores de bicicleta em 5 subgrupos.

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

ObservaçãoObservação

A coluna da tabela aninhada, SUPPORT, deve estar entre parênteses 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

SUPPORT

00000000100

Número de Carros = 0

Comprador de Bicicleta

Ausente

0

00000000100

Número de Carros = 0

Comprador de Bicicleta

0

1067

00000000100

Número de Carros = 0

Comprador de Bicicleta

1

1875

00000000101

Número de Carros = 3

Comprador de Bicicleta

Ausente

0

00000000101

Número de Carros = 3

Comprador de Bicicleta

0

678

00000000101

Número de Carros = 3

Comprador de Bicicleta

1

473

Com esses resultados, é possível afirmar que dos clientes que compraram uma bicicleta ([Bike Buyer] = 1), 1.067 clientes não tinham carro e 473 clientes tinham 3 carros.

Retornar ao início

Exemplo de consulta 3: recuperando subárvores do modelo

Suponha que você queira saber mais sobre os clientes que compraram uma bicicleta. É possível exibir detalhes adicionais para qualquer subárvore usando a função IsDescendant (DMX) na consulta, como mostra o exemplo a seguir. A consulta retorna o cálculo dos compradores de bicicletas recuperando os nós folha (NODE_TYPE = 4) da árvore que contém os clientes acima de 42 anos de idade. A consulta restringe linhas da tabela aninhada para aquelas onde 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 >= 26.000 e < 42.000

266

00000000100010100

Total de Filhos = 3

75

0000000010001010100

Número de Crianças em Casa = 1

75

Retornar ao início

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

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

  • Retornar uma previsão para um modelo de classificação, juntamente com a probabilidade de a previsão estar correta, e depois filtrar os resultados por probabilidade;

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

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

Exemplo de consulta 4: retornando previsões com probabilidades

O exemplo de consulta a seguir usa o modelo de árvore de decisão criado no Tutorial de mineração de dados básico. A consulta passa por um novo conjunto de dados de exemplo, da tabela dbo.ProspectiveBuyers em AdventureWorks2012 DW, para prever qual dos clientes do novo conjunto de dados comprará 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 encontradas pelo modelo. A cláusula WHERE final da consulta filtra os resultados para retornar apenas os clientes que foram previstos como prováveis compradores de 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 nome de coluna, Expressão. Você pode alterar esse nome no alias da coluna que é retornada. Se fizer isso, o alias (nesse caso, Resultados) será usado no cabeçalho da coluna e também como valor da tabela aninhada. Você deve expandir a tabela aninhada para verificar os resultados.

Resultados do exemplo:

Comprador de Bicicleta

Resultados

1

Resultados

Comprador de Bicicleta

$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 seu provedor não der suporte a conjuntos de linhas hierárquicos, como os resultados exibidos aqui, você poderá utilizar a palavra-chave FLATTENED na consulta para retornar os resultados em uma tabela que contenha nulos em vez de valores de coluna repetidos. Para obter mais informações, consulte Tabelas aninhadas (Analysis Services - Mineração de Dados) ou Compreendendo a instrução Select (DMX).

Retornar ao início

Exemplo de consulta 5: prevendo associações de um modelo de árvore de decisão

O exemplo de consulta a seguir é baseado na estrutura de mineração Association. Para continuar com 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 Association, consulte Lição 3: Criando um cenário de cesta de compras (Tutorial de mineração de dados intermediário).

O exemplo de consulta a seguir é uma consulta singleton que pode ser criada facilmente no SSDT (SQL Server Data Tools) selecionando os campos e depois os valores para esses campos na 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

Mountain-200

Mountain Tire Tube

Tubo de pneu para passeio

Os resultados indicam os três melhores produtos para serem recomendados a clientes que compraram o produto Patch Kit. Você também pode fornecer vários produtos como entrada ao fazer suas recomendações, tanto digitando os valores como usando a caixa de diálogo Entrada de Consulta Singleton e adicionando ou removendo valores. A consulta de exemplo a seguir mostra como vários valores são fornecidos, sob os quais uma previsão é feita. 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

Jersey Logo de manga longa

Mountain-400-W

Colete clássico

Retornar ao início

Exemplo de consulta 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 contém uma regressão em um atributo contínuo, você pode usar a fórmula de regressão para fazer previsões ou pode extrair informações precisas sobre a fórmula. 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 esses nós se dividirem em atributos discretos ou intervalos, você poderá criar uma consulta que retorne 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 combinadas e a tabela NODE_DISTRIBUTION recebe um alias para facilitar a exibição. Porém, neste modelo, nenhum regressor foi localizado para relacionar Income com outros atributos contínuos. Nesses casos, o Analysis Services retorna o valor médio do atributo e a variância total no modelo para aquele 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.PROBABILITY

t.VARIANCE

t.VALUETYPE

Renda Anual

Ausente

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 usada em modelos de regressão, consulte Conteúdo do modelo de mineração para modelos de regressão linear (Analysis Services – Mineração de Dados).

Retornar ao início

Lista de funções de previsão

Todos os algoritmos do Microsoft dão suporte a um conjunto comum de funções. Entretanto, o algoritmo Árvores de Decisão da Microsoft oferece suporte a funções adicionais relacionadas na tabela a seguir:

Função de previsão

Uso

IsDescendant (DMX)

Determina se um nó é um 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ê associação de membro em um conjunto de dados associativo.

PredictHistogram (DMX)

Retorna uma tabela de valores relacionados ao valor previsto atual.

PredictNodeId (DMX)

Retorna 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 Microsoft, consulte Funções de previsão gerais (DMX). Para obter a sintaxe de funções específicas, consulte Referência de função de DMX (Data Mining Extensions).

Consulte também

Referência

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)

Conceitos

Consultas de mineração de dados

Algoritmo Árvores de Decisão da Microsoft