Consultando um modelo de árvores de decisão (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 os padrões descobertos em análises ou criar uma consulta de previsão que usa os padrões do 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 com o uso 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 entender a estrutura do conteúdo do modelo e saber 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 localizar metadados sobre o modelo, como a data de criação, a última vez que o modelo foi processado, o nome da estrutura de mineração na qual o modelo é baseado e o nome da coluna usada como o 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 alguma informações básicas sobre as árvores de decisão que foram criadas quando o modelo foi criado 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á apenas um nó de árvore. Entretanto, se você criar um modelo de associação com o uso do algoritmo Árvores de Decisão, poderão haver centenas de árvores, uma para cada produto.

Esta 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 específico.

ObservaçãoObservação

A coluna CHILDREN_CARDINALITY deve estar entre colchetes para que seja distinguida 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

All

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

Number Cars Owned = 0

Bike Buyer

Ausente

0

00000000100

Number Cars Owned = 0

Bike Buyer

0

1067

00000000100

Number Cars Owned = 0

Bike Buyer

1

1875

00000000101

Number Cars Owned = 3

Bike Buyer

Ausente

0

00000000101

Number Cars Owned = 3

Bike Buyer

0

678

00000000101

Number Cars Owned = 3

Bike Buyer

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 Bike Buyer = 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

Yearly Income >= 26000 e < 42000

266

00000000100010100

Total Children = 3

75

0000000010001010100

Number Children At Home = 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, inclusive classificação, regressão e até mesmo associação, quando cria uma consulta de previsão em um modelo de árvore de decisão, você tem 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 AdventureWorks2008R2 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 descobertas 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],
    '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 da coluna, Expressão. Você pode alterar esse rótulo 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:

Bike Buyer

Resultados

1

Resultados

Bike Buyer$SUPPORT$PROBABILITY$ADJUSTEDPROBABILITY$VARIANCE$STDEV
125400.6348492420456440.01356216828156200
014600.3649841745793770.0066133693255091500
00.0001665833749791770.00016658337497917700

Se seu provedor não oferecer suporte a conjuntos de linhas hierárquicos, como os mostrados aqui, é possível 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 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 Business Intelligence Development Studio com a seleção dos campos e, em seguida, dos 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

Touring Tire Tube

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

Long-Sleeve Logo Jersey

Mountain-400-W

Classic Vest

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 extrair informações precisas sobre a fórmula de regressão. Para obter mais informações sobre consultas em modelos de regressão, consulte Consultando um modelo de regressão linear (Analysis Services – Mineração de Dados).

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 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 simplificadas 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 usados 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 da Microsoft oferecem suporte a um conjunto de funções comum. Entretanto, o algoritmo Árvores de Decisão da Microsoft oferece suporte a 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).