Como realizar a regressão logística em Python?



Regressão logística em Python usando sklearn para prever o resultado, determinando a relação entre variáveis ​​dependentes e uma ou mais variáveis ​​independentes.

A regressão logística em Python é uma técnica de análise preditiva. Também é usado no Aprendizado de Máquina para problemas de classificação binária. Neste blog, examinaremos os seguintes tópicos para entender a regressão logística em Python:

  1. O que é regressão?
  2. Regressão Logística em Python
  3. Regressão Logística vs Regressão Linear
  4. Casos de Uso
  5. Demonstração

Você também pode consultar este tutorial detalhado sobre regressão logística em python com uma demonstração para uma melhor compreensão ou passar pelo para dominar a regressão logística.





O que é regressão?

análise é uma técnica de análise estatística poderosa. UMA dependente variável de nosso interesse é usada para prever os valores de outros variáveis ​​independentes em um conjunto de dados.

Encontramos regressões de forma intuitiva o tempo todo. Como prever o tempo usando o conjunto de dados das condições do tempo no passado.



Ele usa muitas técnicas para analisar e prever o resultado, mas a ênfase está principalmente em relação entre a variável dependente e uma ou mais variáveis ​​independentes.

a análise prevê o resultado em uma variável binária que tem apenas dois resultados possíveis.



Regressão logística em Python

É uma técnica para analisar um conjunto de dados que tem uma variável dependente e uma ou mais variáveis ​​independentes para prever o resultado em uma variável binária, o que significa que terá apenas dois resultados.

A variável dependente é categórico na natureza. A variável dependente também é conhecida como variável de destino e as variáveis ​​independentes são chamadas de preditores .

A regressão logística é um caso especial de regressão linear em que apenas prevemos o resultado em uma variável categórica. Ele prevê a probabilidade do evento usando a função de log.

Nós usamos o Função / curva sigmóide para prever o valor categórico. O valor limite decide o resultado (ganhar / perder).

Equação de regressão linear: y = β0 + β1X1 + β2X2…. + βnXn

  • Y representa a variável dependente que precisa ser prevista.
  • β0 é a interceptação Y, que é basicamente o ponto na linha que toca o eixo y.
  • β1 é a inclinação da linha (a inclinação pode ser negativa ou positiva, dependendo da relação entre a variável dependente e a variável independente).
  • X aqui representa a variável independente que é usada para prever nosso valor dependente resultante.

Função sigmóide: p = 1/1 + e-Y

Aplique a função sigmóide na equação de regressão linear.

regressão logística em python-edureka

Equação de regressão logística: p = 1/1 + e- (β0 + β1X1 + β2X2 .... + βnXn)

Vamos dar uma olhada em diferentes tipos de regressão logística.

Tipos de regressão logística

o que é applet em java com exemplo
    • Regressão logística binária - Possui apenas dois resultados possíveis. Exemplo - sim ou não
    • Regressão logística multinomial - Possui três ou mais categorias nominais. Exemplo: gato, cachorro, elefante.
    • Regressão logística ordinal - tem três ou mais categorias ordinais, ordinal significando que as categorias estarão em uma ordem. Exemplo- avaliações do usuário (1-5).

Regressão Logística Linear Vs

Embora a regressão linear possa ter infinitos valores possíveis, regressão logística tem resultados definitivos .

A regressão linear é usada quando a variável de resposta é contínua por natureza, mas a regressão logística é usada quando a variável de resposta é categórica por natureza.

Prever um inadimplente em um banco usando os detalhes da transação no passado é um exemplo de regressão logística, enquanto uma saída contínua como uma pontuação do mercado de ações é um exemplo de regressão linear.

Casos de Uso

A seguir estão os casos de uso em que podemos usar regressão logística.

Previsão do tempo

As previsões meteorológicas são o resultado de regressão lógica. Aqui, analisamos os dados das previsões meteorológicas anteriores e prevemos o resultado possível para um dia específico. Mas a regressão lógica só prevê dados categóricos, como se vai chover ou não.

Determinando Doença

Podemosusarregressão lógica com a ajuda do histórico médico do paciente para prever se a doença é positiva ou negativa em qualquer caso.

Vamos pegar um conjunto de dados de amostra para construir um modelo de predição usando regressão logística.

Demo

Vamos construir um modelo de previsãousandoregressão lógica em Python com a ajudadoum conjunto de dados,nissovamos cobrir as etapas a seguir para alcançar a regressão lógica.

Coletando dados

A primeira etapa para implementar a regressão logística é coletar os dados. Iremos carregar o arquivo csv contendo o conjunto de dados nos programas usando o pandas. Estamos usando os dados da NBA para construir o modelo de previsão para prever a possibilidade de um jogo em casa ou fora, analisando a relação entre os dados relevantes.

import pandas as pd import numpy as np import seaborn as sns import matplotlib.pyplot as plt df = pd.read_csv (r'C: UsersMohammadWaseemDocumentsdata.csv ') print (df.head (5))

Você obterá todos os dados em um formato legível para facilitar a análise. E então você pode determinar as variáveis ​​dependentes e independentes para seu modelo.

Analisando Dados

O conjunto de dados é analisado para determinar a relação entre as variáveis. Ao criar gráficos diferentes para verificar a relação entre as variáveis.

sns.countplot ('Home', hue = 'WINorLOSS', data = df) plt.show ()

Acima está a relação entre a porcentagem de vitórias / derrotas no que diz respeito ao jogo em casa / fora. Ssimilarmentepodemos traçar o gráfico de relacionamento entre outras entradas relevantes nos dados.

Disputa de dados

O conjunto de dados é modificado de acordo com a variável de destino. Eliminaremos todos os valores nulos e também os valores de string do DataFrame.

imprimir (df.isnull (). sum ())

Verificaremos todos os dados irrelevantes, como valores nulos e os valores que não serão necessários ao construir o modelo de previsão. Se não houver valores nulos no conjunto de dados da NBA que estamos usando, prosseguiremos com a divisão dos dados.

Dados de teste e treinamento

Para o desempenho do modelo, os dados são divididos em dados de teste e dados de trem. Os dados são divididos usando o train_test_split . Os dados aqui são divididos na proporção 70:30.

Agora, para o predição de modelo a função de regressão logística é implementada importando o modelo de regressão logística no módulo sklearn.

O modelo é então ajustado ao conjunto de trem usando a função de ajuste. Depois disso, a previsão é realizada usando a função de previsão.

from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics importar classificação_report de sklearn.metrics importar confusão_matrix, precisão_score x = df.drop ('Home', axis = 1) y = df ['Home'] x_train, x_test, y_train, y_test = train_test_split (x, y, test_size = 0,33, random_state = 1) logmodel = LogisticRegression () logmodel.fit (x_train, y_train) predictions = logmodel.predict (x_test) imprimir (classificação_reportar (y) print (confusão_matriz (y_test, previsões)) print (precisão_score (y_test, previsões))

Relatório de Classificação:

O relatório de classificação exibe o Precisão , Recall, F1 e Suporte pontuações para o modelo.

Precisão pontuação significa o nível até o qual a previsão feita pelo modelo é precisa. A precisão para um jogo em casa é 0,62 e para o jogo fora é 0,58 .

Recall é a quantidade até a qual o modelo pode prever o resultado. O recall para um jogo em casa é 0,57 e para um jogo fora é 0,64 . As pontuações F1 e Suporte são a quantidade de dados testados para as previsões. No conjunto de dados da NBA, os dados testados para o jogo em casa são 1662 e para o jogo fora é 1586 .

Matriz de confusão:

Matriz de confusão é uma tabela que descreve o desempenho de um modelo de previsão. Uma matriz de confusão contém os valores reais e os valores previstos. podemos usar esses valores para calcular a pontuação de precisão do modelo.

Mapa térmico da matriz de confusão:

Vamos traçar um mapa de calor da matriz de confusão usando o mar e para visualizar o modelo de previsão que construímos. Para plotar um mapa de calor, a seguinte sintaxe é necessária.

sns.heatmap (pd.DataFrame (confused_matrix (y_test, predictions))) plt.show ()

Observando o mapa de calor, podemos concluir o seguinte:

  • De todas as previsões, o classificador previu sim para o total de 1.730 vezes, das quais 1.012 foram sim reais.
  • de todas as previsões, o classificador previu não para o total de 1518 vezes, das quais 944 foram reais no.

Com esta análise da matriz de confusão, podemos concluir a pontuação de precisão para nosso modelo de previsão.

Pontuação de precisão:

A pontuação de precisão é a porcentagem de precisão das previsões feitas pelo modelo. Para nosso modelo, a pontuação de precisão é 0,60, o que é consideravelmente preciso. Porém, quanto maior a pontuação de precisão, mais eficiente é o modelo de previsão. Você deve sempre ter como objetivo uma pontuação de precisão mais alta para um modelo de previsão melhor.

Seguindo as etapas discutidas acima, previmos a possibilidade de um jogo em casa / fora usando o conjunto de dados da NBA. Depois de analisar o relatório de classificação podemos assumir a possibilidade de um jogo em casa / fora.

Neste blog, discutimos a regressão logística nos conceitos de python, como ela é diferente da abordagem linear. Além disso, cobrimos uma demonstração usando o conjunto de dados da NBA. Para obter mais informações e prática, você pode usar um conjunto de dados de sua escolha e seguir as etapas discutidas para implementar a regressão logística em Python.

Além disso, verifique os vários blogs de ciência de dados na plataforma edureka para dominar o cientista de dados que existe em você.

qtp vs selênio que é melhor
Se você deseja aprender Python e construir uma carreira na ciência de dados, confira nosso site interativo ao vivo aqui, ele vem com suporte 24 horas por dia, 7 dias por semana para orientá-lo durante o período de aprendizado.
Tem uma questão? Mencione isso nos comentários e entraremos em contato com você.