Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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.
Quando cria uma consulta contra um modelo de mineração de dados, pode criar uma consulta de conteúdo, que fornece detalhes sobre os padrões descobertos na análise, ou pode criar uma consulta de previsão, que utiliza 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 em cada nível da árvore, ou as regras que diferenciam os casos. Alternativamente, uma consulta de previsão mapeia o modelo para novos dados, de modo a gerar recomendações, classificações, e assim por diante. Também pode obter metadados sobre o modelo usando uma consulta.
Esta secção explica como criar consultas para modelos baseados no algoritmo Microsoft Decision Trees.
Consultas de Conteúdo
Recuperação dos parâmetros do modelo a partir do conjunto de linhas do esquema de mineração de dados
Obter detalhes sobre árvores no modelo usando DMX
Recuperação de Subárvores do Modelo
Consultas de Previsão
Retorno de Previsões com Probabilidades
Prever associações a partir de um modelo de árvores de decisão
Recuperação de uma Fórmula de Regressão a partir de um Modelo de Árvores de Decisão
Encontrar informação sobre um Modelo de Árvores de Decisão
Para criar consultas significativas sobre o conteúdo de um modelo de árvores de decisão, deve compreender a estrutura do conteúdo do modelo e que tipos de nós armazenam que tipo de informação. Para mais informações, consulte Mining Model Content for Decision Tree Models (Analysis Services - Data Mining).
Exemplo de Consulta 1: Recuperação de 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, pode encontrar metadados sobre o modelo, como quando foi criado, quando o modelo foi processado pela última vez, o nome da estrutura de mineração em que o modelo se baseia e o nome da coluna usada como atributo previsível. Também pode devolver 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'
Exemplos de resultados:
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=
Exemplo de Consulta 2: Devolver Detalhes sobre o Conteúdo do Modelo Usando DMX
A consulta seguinte devolve alguma informação básica sobre as árvores de decisão que foram criadas quando construiu o modelo no Tutorial Básico de Mineração de Dados. Cada estrutura de árvore é armazenada no seu próprio nó. Como este modelo contém um único atributo previsível, existe apenas um nó de árvore. No entanto, se criares um modelo de associação usando o algoritmo das Árvores de Decisão, podem existir centenas de árvores, uma para cada produto.
Esta consulta devolve 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 particular.
Observação
A coluna, CHILDREN_CARDINALITY, deve estar entre colchetes para a distinguir da palavra-chave reservada MDX com o mesmo nome.
SELECT MODEL_NAME, NODE_NAME, NODE_CAPTION,
NODE_SUPPORT, [CHILDREN_CARDINALITY]
FROM TM_DecisionTrees.CONTENT
WHERE NODE_TYPE = 2
Exemplos de resultados:
| MODEL_NAME | NODE_NAME | NODE_CAPTION | NODE_SUPPORT | CARDINALIDADE_FILHOS |
|---|---|---|---|---|
| TM_ÁrvoreDeDecisão | 000000001 | Todos | 12939 | 5 |
O que é que estes resultados lhe dizem? Num modelo de árvores de decisão, a cardinalidade de um determinado nó indica-lhe quantos filhos imediatos esse nó tem. A cardinalidade deste nó é 5, o que significa que o modelo dividiu a população-alvo de potenciais compradores de bicicletas em 5 subgrupos.
A seguinte consulta relacionada devolve os filhos destes cinco subgrupos, juntamente com a distribuição dos atributos e valores nos nós filhos. Como estatísticas como suporte, probabilidade e variância estão armazenadas na tabela aninhada, NODE_DISTRIBUTION, este exemplo usa a FLATTENED palavra-chave para gerar as colunas da tabela aninhada.
Observação
A coluna da tabela aninhada, SUPPORT, deve estar entre parênteses para a distinguir da palavra-chave reservada com o 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'
Exemplos de resultados:
| NODE_NAME | NODE_CAPTION | T.ATTRIBUTE_NAME | T.ATTRIBUTE_VALUE | SUPORTE |
|---|---|---|---|---|
| 00000000100 | Número de Carros Possuídos = 0 | Comprador de Bicicletas | Faltam | 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 | Faltam | 0 |
| 00000000101 | Número de Carros Possuídos = 3 | Comprador de Bicicletas | 0 | 678 |
| 00000000101 | Número de Carros Possuídos = 3 | Comprador de Bicicletas | 1 | 473 |
A partir destes resultados, pode-se perceber que, dos clientes que compraram uma bicicleta ([Comprador de Bicicleta] = 1), 1067 clientes tinham 0 carros e 473 tinham 3 carros.
Exemplo de Consulta 3: Recuperação de Subárvores do Modelo
Suponha que queria saber mais sobre os clientes que compraram uma bicicleta. Pode visualizar detalhes adicionais de qualquer uma das subárvores usando a função IsDescendant (DMX) na consulta, como no exemplo seguinte. A consulta devolve a contagem dos compradores de bicicletas recuperando os nós folha (NODE_TYPE = 4) da árvore que contém clientes com mais de 42 anos. A consulta restringe linhas da tabela aninhada àquelas onde o Comprador de Bicicleta seja igual a 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
Exemplos de resultados:
| NODE_NAME | NODE_CAPTION | t.SUPORTE |
|---|---|---|
| 000000001000100 | Rendimento >Anual = 26000 e < 42000 | 266 |
| 00000000100010100 | Total de filhos = 3 | 75 |
| 0000000010001010100 | Número de Filhos em Casa = 1 | 75 |
Fazer 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 cria uma consulta de previsão num modelo de árvore de decisão tem muitas opções disponíveis. Deve compreender o propósito para o qual o modelo foi criado para compreender os resultados da previsão. Os seguintes exemplos de consultas ilustram três cenários diferentes:
Devolver uma previsão para um modelo de classificação, juntamente com a probabilidade de a previsão estar correta, e depois filtrar os resultados pela probabilidade;
Criar uma consulta singleton para prever associações;
Recuperar a fórmula de regressão para uma parte de uma árvore de decisão onde a relação entre a entrada e a saída é linear.
Consulta de Exemplo 4: Devolver Previsões com Probabilidades
A seguinte consulta de exemplo utiliza o modelo de árvore de decisão criado no Tutorial Básico de Mineração de Dados. A consulta passa um novo conjunto de dados de exemplo, da tabela dbo.ProspectiveBuyers no AdventureWorks2012 DW, para prever qual dos clientes do novo conjunto de dados irá comprar uma bicicleta.
A consulta utiliza a função de predição PredictHistogram (DMX), que devolve uma tabela aninhada que contém informações úteis sobre as probabilidades descobertas pelo modelo. A última cláusula WHERE da consulta filtra os resultados para devolver apenas os clientes que são previstos como propensos a comprar uma bicicleta, com probabilidade superior a 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 defeito, o SQL Server Analysis Services devolve tabelas aninhadas com o rótulo da coluna Expression. Pode alterar este rótulo apelidando a coluna que é devolvida. Se fizeres isto, o alias (neste caso, Resultados) é usado tanto como cabeçalho da coluna como como valor na tabela aninhada. Tens de expandir a tabela aninhada para ver os resultados.
Exemplos de resultados com 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 seu fornecedor não suportar conjuntos de linhas hierárquicos, como os aqui mostrados, pode usar a palavra-chave FLATTENED na consulta para devolver os resultados como uma tabela que contém nulos em vez dos valores repetidos das colunas. Para mais informações, consulte Tabelas Aninhadas (Serviços de Análise - Mineração de Dados) ou Compreender a Instrução DMX Select.
Exemplo de Consulta 5: Prever Associações a partir de um Modelo de Árvores de Decisão
A seguinte consulta de exemplo baseia-se na estrutura de mineração por Associação. Para acompanhar este exemplo, pode adicionar um novo modelo a esta estrutura de mineração e selecionar Microsoft Decision Trees como algoritmo. Para mais informações sobre como criar a estrutura de mineração por associação, consulte a Lição 3: Construir um Cenário de Cesto de Mercado (Tutorial de Mineração de Dados Intermédio).
A seguinte consulta de exemplo é uma consulta singleton, que pode facilmente criar no SQL Server Data Tools escolhendo campos e em seguida selecionando os valores desses campos a partir de 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 |
|---|
| Mountain-200 |
| Câmara de pneu de montanha |
| Câmara de Ar para Pneus Touring |
Os resultados indicam os três melhores produtos para recomendar aos clientes que compraram o produto Patch Kit. Também pode fornecer múltiplos produtos como entrada quando faz recomendações, seja digitando valores, seja usando a caixa de diálogo Singleton Query Input e adicionando ou removendo valores. A seguinte consulta de exemplo mostra como são fornecidos os múltiplos valores, sobre os quais se pode fazer uma previsão. Os valores são ligados 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 |
|---|
| Camisola de Manga Comprida com Logótipo |
| Mountain-400-W |
| Colete Clássico |
Exemplo de Consulta 6: Recuperar uma Fórmula de Regressão a partir de um Modelo de Árvores de Decisão
Quando cria um modelo de árvore de decisão que contém uma regressão num atributo contínuo, pode usar a fórmula de regressão para fazer previsões ou extrair informação sobre a fórmula de regressão. Para mais informações sobre consultas em modelos de regressão, consulte Exemplos de Consultas de Modelos 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, pode criar uma consulta que devolve 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 achatadas e a tabela NODE_DISTRIBUTION é aliasada para facilitar a visualização. No entanto, neste modelo, não foram encontrados regressores capazes de relacionar o Rendimento com outros atributos contínuos. Nesses casos, o SQL Server Analysis Services devolve o valor médio do atributo e a variância total no modelo para esse atributo.
SELECT FLATTENED NODE_DISTRIBUTION AS t
FROM DT_Predict. CONTENT
WHERE NODE_TYPE = 25
Exemplos de resultados:
| t.ATTRIBUTE_NAME | t.ATTRIBUTE_VALUE | t.SUPORTE | t. PROBABILIDADE | t.VARIÂNCIA | t.VALUETYPE |
|---|---|---|---|---|---|
| Rendimento Anual | Faltam | 0 | 0.000457142857142857 | 0 | 1 |
| Rendimento Anual | 57220.8876687257 | 17484 | 0.999542857142857 | 1041275619.52776 | 3 |
| 57220.8876687257 | 0 | 0 | 1041216662.54387 | 11 |
Para mais informações sobre os tipos de valor e as estatísticas usadas em modelos de regressão, consulte Mining Model Content for Linear Regression Models (Analysis Services - Data Mining).
Lista de funções de previsão
Todos os algoritmos da Microsoft suportam um conjunto comum de funções. No entanto, o algoritmo Microsoft Decision Trees suporta as funções adicionais listadas na tabela seguinte.
| Função de Previsão | Usage |
|---|---|
| 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) | Devolve a probabilidade ponderada. |
| PredictAssociation (DMX) | Prevê a pertença a um conjunto de dados associativo. |
| PredictHistogram (DMX) | Devolve uma tabela de valores relacionados com o valor previsto atual. |
| PredictNodeId (DMX) | Devolve o Node_ID para cada caso. |
| PredictProbability (DMX) | Retorna a probabilidade para o valor previsto. |
| PredictStdev (DMX) | Devolve o desvio padrão previsto para a coluna especificada. |
| PredictSupport (DMX) | Devolve o valor de suporte para um estado especificado. |
| PredictVariance (DMX) | Devolve a variância de uma coluna especificada. |
Para uma lista das funções comuns a todos os algoritmos da Microsoft, veja Funções Gerais de Previsão (DMX). Para a sintaxe de funções específicas, veja Referência de Função das Extensões de Mineração de Dados (DMX).
Ver também
Consultas de Mineração de Dados
Algoritmo de Árvores de Decisão da Microsoft
Referência Técnica do Algoritmo das Árvores de Decisão da Microsoft
Mineração de Conteúdo de Modelos para Modelos de Árvore de Decisão (Serviços de Análise - Mineração de Dados)