Consultando um modelo de árvores de decisão (Analysis Services – Mineração de dados)
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 do modelo do conjunto de linhas do esquema de mineração de dados
Retornando detalhes sobre árvores no modelo usando DMX
Retornando nós de regressão de um modelo de árvore de decisão
Consultas de previsão
Retornando previsões e probabilidades
Prevendo associações de uma árvore 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 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).
Voltar ao início
Exemplo de consulta 1: Recuperando parâmetros do modelo do conjunto de linhas do esquema de mineração de dados
Ao consultar o conjunto de linhas do esquema de mineração de dados, você encontra metadados sobre o modelo, como quando ele foi criado, a ú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 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=
Voltar ao início
Exemplo de consulta 2: Retornando detalhes sobre árvores no modelo usando DMX
A consulta a seguir retorna algumas informações básicas sobre o modelo de árvore de decisão criado no Tutorial de mineração de dados básico. 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. 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.
Observaçã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 |
All |
12939 |
5 |
Em um modelo de árvores de decisão, a cardinalidade de um nó específico indica quantos filhos imediatos aquele nó contém. Portanto, a cardinalidade de um nós retornado pela consulta anterior indica que o modelo dividiu a população de potenciais consumidores de bicicletas 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çã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 |
= 0 |
Bike Buyer |
Missing |
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 |
Missing |
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.
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 |
Voltar ao início
Exemplo de consulta 3: Retornando nós de regressão de um modelo de árvore 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 sobre a fórmula. 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 o seu modelo contém uma mistura de nós de regressão e nós que se dividem em atributos discretos ou intervalos, é possível criar uma consulta que retorna somente 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 Renda 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 |
---|---|---|---|---|---|
Yearly Income |
Missing |
0 |
0.000457142857142857 |
0 |
1 |
Yearly Income |
57220.8876687257 |
17484 |
0.999542857142857 |
1041275619.52776 |
3 |
|
57220.8876687257 |
0 |
0 |
1041216662.54387 |
11 |
Para obter mais informações sobre os tipos de valores e as estatísticas usadas 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).
Voltar ao início
Fazendo previsões usando o modelo
Como as á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.
Voltar ao início
Exemplo de consulta 4: Retornando previsões e 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 e passa a tabela de dados de exemplo no AdventureWorks DW, dbo.ProspectiveBuyers, para o modelo para prever quais dos clientes em uma lista comprarão uma bicicleta. A consulta inclui 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. As previsão são filtradas adicionando a cláusula WHERE para retornar somente aqueles compradores que têm uma probabilidade maior do que 50% de adquirir uma bicicleta.
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 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:
Bike Buyer |
Resultados |
---|---|
1 |
Resultados
Bike Buyer$SUPPORT$PROBABILITY$ADJUSTEDPROBABILITY$VARIANCE$STDEV
125400.6348492420456440.01356216828156200
014600.3649841745793770.0066133693255091500
00.0001665833749791770.00016658337497917700
|
Se o seu provedor não der suporte a conjuntos de linhas hierárquicos, como os resultados exibidos aqui, é possível usar a palavra-chave FLATTENED na consulta para retornar os resultados em uma tabela contendo nulos no lugar 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).
Voltar ao início
Exemplo de consulta 5: Prevendo associações de uma árvore de decisão
Para usar a consulta a seguir, você pode criar uma cópia do modelo de associação neste tutorial e alterar o algoritmo para um algoritmo de Árvores de Decisão. Para obter mais informações, 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 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 |
Tubo de pneu para mountain bike |
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 |
---|
Long-Sleeve Logo Jersey |
Mountain-400-W |
Classic Vest |
Voltar ao início
Lista de funções de previsão
Todos os algoritmos Microsoft fornecem 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:
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).
Histórico de alterações
Conteúdo atualizado |
---|
Adicionados links no tópico para facilitar a revisão de exemplos de consultas. |
Movido o exemplo de nó de regressão para a seção apropriada, sobre consultas de conteúdo. |
Consulte também