Partilhar via


Exemplos de consulta de modelo de regressão logística

Aplica-se a: SQL Server 2019 e anteriores do 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 foi descontinuada no SQL Server 2022 Analysis Services. A documentação não foi atualizada para recursos preteridos e descontinuados. Para saber mais, confira Compatibilidade com versões anteriores do Analysis Services.

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 com os novos dados.

Esta seção explica como criar consultas para modelos baseados no algoritmo Regressão Logística da Microsoft.

Consultas de conteúdo

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

Localizando detalhes adicionais sobre o modelo usando DMX

Consultas de previsão

Fazendo previsões para um valor contínuo

Fazendo previsões para um valor discreto

Obtendo informações sobre o Modelo de Regressão Logística

Os modelos de regressão logística são criados com o uso do algoritmo Rede Neural da Microsoft com um conjunto especial de parâmetros; portanto, um modelo de regressão logística tem algumas das mesmas informações que um modelo de redes neurais, só que é mais complexo. Para entender a estrutura do conteúdo do modelo e quais tipos de nó armazenam que tipo de informação, consulte Conteúdo do modelo de mineração para modelos de regressão logística (Analysis Services – Mineração de Dados).

Para acompanhar os cenários de consulta, você pode criar um modelo de regressão logística, conforme descrito na seção a seguir do Tutorial de Mineração de Dados Intermediário: Lição 5: Criando modelos de rede neural e regressão logística (Tutorial de mineração de dados intermediário).

Você também pode usar a estrutura de mineração, Correspondência destinada, do Tutorial básico de mineração de dados.

ALTER MINING STRUCTURE [Targeted Mailing]  
ADD MINING MODEL [TM_Logistic Regression]  
([Customer Key],  
[Age],  
[Bike Buyer] PREDICT,  
[Yearly Income] PREDICT,  
[Commute Distance],  
[English Education],  
Gender,  
[House Owner Flag],  
[Marital Status],  
[Number Cars Owned],  
[Number Children At Home],  
[Region],  
[Total Children]  
)  
USING Microsoft_Logistic_Regression  

Exemplo de consulta 1: Recuperando parâmetros de modelos usando o 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. O exemplo a seguir retorna os parâmetros usados quando o modelo foi criado, junto com o nome e o tipo de modelo, além da data de criação.

SELECT MODEL_NAME, SERVICE_NAME, DATE_CREATED, MINING_PARAMETERS   
FROM $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = 'Call Center_LR'  

Resultados do exemplo:

MODEL_NAME SERVICE_NAME DATE_CREATED MINING_PARAMETERS
Call Center_LR Microsoft_Logistic_Regression 04/07/2009 20:38:33 HOLDOUT_PERCENTAGE=30, HOLDOUT_SEED=1, MAXIMUM_INPUT_ATTRIBUTES=255, MAXIMUM_OUTPUT_ATTRIBUTES=255, MAXIMUM_STATES=100, SAMPLE_SIZE=10000

Consulta de exemplo 2: Localizando detalhes adicionais sobre o modelo usando DMX

A consulta a seguir retorna algumas informações básicas sobre o modelo de regressão logística. Um modelo de regressão logística é semelhante a um modelo de rede neural em muitos aspectos, inclusive a presença de um nó de estatísticas marginais (NODE_TYPE = 24) que descreve os valores usados como entradas. Esta consulta de exemplo usa o modelo Endereçamento de Destino e obtém os valores de todas as entradas recuperando-as da tabela aninhada, NODE_DISTRIBUTION.

SELECT FLATTENED NODE_DISTRIBUTION AS t  
FROM [TM_Logistic Regression].CONTENT   

Resultados parciais:

T.ATTRIBUTE_NAME t.ATTRIBUTE_VALUE t.SUPPORT t.PROBABILITY t.VARIANCE t.VALUETYPE
Idade Ausente 0 0 0 1
Idade 45.43491192 17484 1 126.9544114 3
Bike Buyer Ausente 0 0 0 1
Bike Buyer 0 8869 0.507263784 0 4
Bike Buyer 1 8615 0.492736216 0 4
Distância do Trabalho Ausente 0 0 0 1
Distância do Trabalho 8-16 quilômetros 3033 0.173472889 0 4

A consulta real retorna muito mais linhas; no entanto, este exemplo demonstra o tipo de informações fornecidas sobre as entradas. Para entradas discretas, cada valor possível é listado na tabela. Para entradas de valor contínuo, como Idade, uma listagem completa é impossível, portanto a entrada é de dados discretos como uma média. Para obter mais informações sobre como usar as informações no nó de estatísticas marginais, consulte Conteúdo do modelo de mineração para modelos de regressão logística (Analysis Services – Mineração de dados).

Observação

Os resultados foram simplificados para facilitar a visualização, mas você poderá retornar a tabela aninhada em uma única coluna se seu provedor oferecer suporte a conjuntos de linhas hierárquicos.

Consultas de previsão em um modelo de regressão logística

Você pode usar a função Predict (DMX) com todos os tipos de modelo de mineração para fornecer novos dados ao modelo e fazer previsões com base nos novos valores. Também é possível usar funções para retornar mais informações sobre a previsão, como a probabilidade de uma previsão estar correta. Esta seção fornece alguns exemplos de consultas de previsão em um modelo de regressão logística.

Exemplo de consulta 3: Fazendo previsões para um valor contínuo

Como a regressão logística também dá suporte ao uso de atributos contínuos para entrada e previsão, é fácil criar modelos que correlacionam vários fatores em seus dados. Você pode usar consultas de previsão para explorar a relação entre esses fatores.

O exemplo de consulta a seguir é baseado no modelo de Call Center, do Tutorial Intermediário, e cria uma consulta singleton que prevê o nível de serviço do turno matutino da sexta-feira. A função PredictHistogram (DMX) retorna uma tabela aninhada que fornece estatísticas relevantes para entender a validade do valor previsto.

SELECT  
  Predict([Call Center_LR].[Service Grade]) as Predicted ServiceGrade,  
  PredictHistogram([Call Center_LR].[Service Grade]) as [Results],  
FROM  
  [Call Center_LR]  
NATURAL PREDICTION JOIN  
(SELECT 'Friday' AS [Day Of Week],  
  'AM' AS [Shift]) AS t  

Resultados do exemplo:

Classificação de Serviço Prevista Nível de serviço $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY $VARIANCE $STDEV
0.102601830123659 0.102601830123659 83.0232558139535 0.988372093023256 0 0.00120552660600087 0.034720694203902
0.976744186046512 0.0116279069767442 0.0116279069767442 0 0

Para obter mais informações sobre os valores de probabilidade, suporte e desvio padrão na tabela aninhada NODE_DISTRIBUTION, consulte Conteúdo do modelo de mineração para modelos de regressão logística (Analysis Services – Mineração de dados).

Exemplo de consulta 4: Fazendo previsões para um valor discreto

A regressão logística normalmente é usada em cenários onde você deseja analisar os fatores que contribuem para um resultado binário. Embora o modelo usado no tutorial preveja um valor contínuo, ServiceGrade, em um cenário de vida real, você pode desejar configurar o modelo para prever se o nível de serviço atendeu a algum valor de destino de dados discretos. Como alternativa, você pode produzir as previsões usando um valor contínuo, mas posteriormente agrupar os resultados previstos em Bom, Razoávelou Fraco.

O exemplo a seguir ilustra como alterar a maneira como o atributo previsível é agrupado. Para isso, você cria uma cópia da estrutura de mineração e, em seguida, altera o método de dados discretos da coluna de destino de forma que os valores sejam agrupados em vez de contínuos.

O procedimento a seguir descreve como alterar o agrupamento de valores de Nível de Serviço nos dados do Call Center.

Para criar uma versão diferenciada da estrutura de mineração e modelos de Call Center
  1. Em SQL Server Data Tools, em Gerenciador de Soluções, expanda Estruturas de Mineração.

  2. Clique com o botão direito do mouse em Call Center.dmm e selecione Copiar.

  3. Clique com o botão direito em Estruturas de Mineração e selecione Pasta. Uma nova estrutura de mineração é adicionada, nomeada como Call Center 1.

  4. Clique com o botão direito do mouse na nova estrutura de mineração e selecione Renomear. Digite o novo nome, Dados Discretos do Call Center.

  5. Clique duas vezes na nova estrutura de mineração para abri-la no designer. Observe que todos os modelos de mineração também foram copiados e que todos têm a extensão 1. Deixe os nomes como estão por enquanto.

  6. Na guia Estrutura de Mineração , clique com o botão direito do mouse na coluna Nível de Serviço e selecione Propriedades.

  7. Altere a propriedade Content de Contínua para Dados Discretos. Altere a propriedade DiscretizationMethod para Clusters. Para BucketCount de Dados Discretos, digite 3.

    Observação

    Esses parâmetros são usados apenas para ilustrar o processo e não geram necessariamente um modelo válido.

  8. No menu Modelo de Mineração , selecione Processar estrutura todos os modelos.

A consulta de exemplo a seguir é baseada nesse modelo de dados discretos e prevê o nível de serviço durante o dia da semana especificado, junto com as probabilidades de cada resultado previsto.

SELECT  
  (PredictHistogram([Call Center_LR 1].[Service Grade])) as [Predictions]  
FROM  
  [Call Center_LR 1]  
NATURAL PREDICTION JOIN  
(SELECT 'Saturday' AS [Day Of Week]) AS t    

Resultados esperados:

Previsões:

Nível de serviço $SUPPORT $PROBABILITY $ADJUSTEDPROBABILITY $VARIANCE $STDEV
0.10872718383125 35.7246504770641 0.425293458060287 0.0170168360030293 0 0
0.05855769230625 31.7098880800703 0.377498667619885 0.020882020060454 0 0
0.170169491525 15.6109159883202 0.185844237956192 0.0661386571386049 0 0
0.954545454545455 0.0113636363636364 0.0113636363636364 0 0

Observe que os resultados previstos foram agrupados em três categorias conforme especificado. No entanto, esses agrupamentos são baseados no clustering de valores reais nos dados, não valores arbitrários que você pode definir como metas comerciais.

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 Regressão Logística 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ó é um filho de outro nó no modelo.
PredictAdjustedProbability (DMX) Retorna a probabilidade ajustada de um estado especificado.
PredictHistogram (DMX) Retorna um valor previsto ou conjunto de valores de uma coluna especificada.
PredictProbability (DMX) Retorna a probabilidade para um estado especificado.
PredictStdev (DMX) Retorna o desvio padrão previsto para o valor previsto.
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 que são comuns a todos os algoritmos da Microsoft, consulte Funções de previsão geral (DMX). Para obter a sintaxe de funções específicas, consulte Referência de função DMX (Data Mining Extensions).

Observação

Para modelos de rede neural e regressão logística, a função PredictSupport (DMX) retorna um único valor que representa o tamanho do conjunto de treinamento para todo o modelo.

Consulte Também

Consultas de mineração de dados
Algoritmo Regressão Logística da Microsoft
Referência técnica do algoritmo Regressão Logística da Microsoft
Conteúdo do modelo de mineração para modelos de regressão logística (Analysis Services – Mineração de Dados)
Lição 5: Criando modelos de rede neural e de regressão logística (Tutorial de mineração de dados intermediário)