Regressão logística | Um guia para iniciantes em regressão logística com Python

Conteúdo

  • O que é regressão logística?
  • Matemática envolvida na regressão logística
  • Medição de desempenho usando matrizes de confusão
  • Demonstração de regressão logística com código Python

A regressão logística é um dos algoritmos de aprendizado de máquina mais populares, que é usado no caso de prever vários conjuntos de dados categóricos.. Os conjuntos de dados categóricos têm apenas dois resultados, 0/1 ou sim / Não

221055cc7604b063fb0c7d541a527_5cbeb12eae2b883405064bc1_two-choice-7704557

Tabela de conteúdo

1 O que é regressão logística?

2 Por que aplicar regressão logística?

3 Matemática envolvida na regressão logística

4 Implementação de regressão logística ao fazer previsões

5 Medição de desempenho

6 principais características da regressão logística

7 tipos de regressão logística

8 Implementação de código Python

1. O que é regressão logística?

É um tipo de algoritmo de aprendizado de máquina de regressão que é implementado para resolver problemas de classificação / categórico,

Problemas com resultados binários, como se / Não, 0/1, Verdade / Falso, são o que chamamos de problemas de classificação.

95588whatsapp-image-2020-02-11-at-8-30-11-pm-3472288

2. Por que aplicar regressão logística?

A regressão linear não fornece uma boa linha de ajuste para problemas que têm apenas dois valores (como se muestra en la figura). Isso dará menos precisão durante a previsão porque não cobrirá os conjuntos de dados, sendo linear por natureza.

Para o melhor ajuste de conjuntos de dados categóricos, é necessária uma curva que seja possível com a ajuda de regressão logística, uma vez que usa uma função sigmóide para fazer previsões.

48211l7xj9gkzufp00gt2txzu-1710093

3. Matemática envolvida na regressão logística

A principal razão por trás da curvatura da curva de regressão logística é que ela é calculada usando uma função sigmóide. (também conhecido como função logística porque é usado em regressão logística) listado abaixo

60550sigmóide-equação-1821663

Esta é a função matemática que a 'curva em forma de S' tem. O valor da função sigmóide está sempre entre 0 e 1, portanto, é implementado para resolver problemas categóricos que têm dois valores possíveis.

281361_a04iknbchaycaj7-0qlesa-6487209

4. Implementação de regressão logística ao fazer previsões

A regressão logística implementa a função sigmóide para fazer previsões no caso de valores categóricos..

Define um valor de ponto de corte, que é principalmente definido em 0.5, naquela, quando é excedido pelo desvio previsto da curva logística, dá a respectiva saída esperada na forma da categoria à qual o conjunto de dados pertence.

Por exemplo,

No caso do modelo de predição de diabetes, se a saída exceder o ponto de corte, o resultado da previsão será dado como Sim para diabetes; pelo contrário, Não, se o valor estiver abaixo do ponto de corte.

5. Medição de desempenho

Para medir el rendimiento del modelo en la resolução de problemas de clasificación, matriz de confusão está sendo usada., Abaixo está a implementação da Matriz de confusão.

96377confusão-matriz-9778094

Termos chave:

  1. – TN significa verdadeiros negativos (O valor previsto (negativo) corresponde ao valor real (negativo))
  2. – FP significa falsos positivos (O valor real era negativo, mas o modelo previu um valor positivo.)
  3. – FN significa falso negativo(O valor real era positivo, mas o modelo previu um valor negativo)
  4. – TP significa verdadeiros positivos (O valor previsto (positivo) correspondeu ao valor real (positivo))

Para um bom modelo, não se deve ter muitos falsos positivos ou falsos negativos

6. Principais Características da Regressão Logística

1. A regressão logística é um dos algoritmos de aprendizado de máquina mais populares, usado na técnica de aprendizado de máquina supervisionado. Se utiliza para predecir la variável dependiente categórica, usando um determinado conjunto de variáveis ​​independentes.

2. Preveja a saída de uma variável categórica, que é discreto por natureza. Pode ser sim ou não, 0 o 1, verdadeiro ou falso, etc. mas em vez de dar o valor exato como 0 e 1, dá o resultado como a probabilidade do conjunto de dados que se encontra entre 0 e 1.

3. É semelhante à regressão linear. A única diferença é que a regressão linear é usada para resolver problemas de regressão, enquanto a regressão logística é usada para resolver problemas de classificação / problemas categóricos.

4 Na regressão logística, a função de logística (sigmoidea) A forma de S é usada como a curva de ajuste, o que dá uma saída entre 0 e 1.

7. Tipos de regressão logística

Existem três tipos:

uma combinação

b Ordinal

c Multinomial

uma combinação

A regressão logística binomial lida com problemas com variáveis ​​de destino que têm apenas dois valores possíveis, 0 o 1.

O que pode significar sim / Não, Verdade / Falso, Morto / Valores ao vivo e outros valores categóricos.

b Ordinal

Regressão logística ordinal Lida com aqueles problemas cujas variáveis-alvo podem ter 3 ou mais que 3 valores, bagunçado por natureza. Esses valores não têm significado quantitativo

Por exemplo, tipo de casa 1, tipo de casa 3, tipo de casa 3, etc.

c Multinomial

A regressão logística multinomial, regressão logística simplesmente ordinal, lida com problemas que têm valores de destino maiores ou iguais a 3. A principal diferença é que, ao contrário do Ordinal, esses valores são bem ordenados. Valores têm importância quantitativa

Por exemplo, avaliação de habilidade tão baixa, meios de comunicação, especialista

6. Implementação de código Python

[ Observação: Os conjuntos de dados que estão sendo obtidos são o conjunto de dados do Titanic]

Importação de bibliotecas

importar pandas O que pd
importar entorpecido O que notário público
importar matplotlib.pyplot O que plt
%matplotlib online
importar marinheiro O que sns
sns, definir ()

Importar o conjunto de dados

titanic_data = pd.read_csv(‘Titanic_train.csv’)

Execução de análise exploratória de dados:

1. Verificando várias entradas nulas no conjunto de dados, com a ajuda do mapa de calor

2.Visualização de várias relações entre variáveis

3. Uso de Box Plot para obtener detalles sobre la distribución

sns.mapa de calor(titanic_data.É nulo(), cbar=Falso)
sns.plotagem(X=‘Sobreviveu’, dados=titanic_data)
sns.plotagem(X=‘Sobreviveu’, matiz=‘Sexo’, dados=titanic_data)
sns.plotagem(X=‘Sobreviveu’, matiz=‘Pclass’, dados=titanic_data)

14222missing-values-heatmap-4429968

mapa de calor

Idade e cabine têm entradas nulas

72354seaborn-countplot-1017498
99768seaborn-countplot-hue-sex-9273318
43948seaborn-countplot-hue-pclass-6846511

sns.enredo de caixa(titanic_data[‘Pclass’], titanic_data['Era'])

44808age-boxplot-4052864

Usando a função para substituir entradas nulas

def input_missing_age(colunas):
idade = colunas[0]
passageiro_classe = colunas[1]
e pd.É nulo(idade):
e(passageiro_classe == 1):
Retornar titanic_data[titanic_data[‘Pclass’] == 1]['Era'].significar()
elifpassageiro_classe == 2):
Retornar titanic_data[titanic_data[‘Pclass’] == 2]['Era'].significar()
elifpassageiro_classe == 3):
Retornar titanic_data[titanic_data[‘Pclass’] == 3]['Era'].significar()
o resto:
Retornar idade

Preencha os dados de idade que faltam

titanic_data['Era'] = titanic_data[['Era', ‘Pclass’]].solicitar(input_missing_age, eixo = 1)

Remover dados nulos

titanic_data.soltar('Cabine’, eixo=1, em seu lugar = Certo)
titanic_data.derrubar(em seu lugar = Certo)

Crie variáveis ​​fictícias para a coluna Sexo e Remessas

sex_data = pd.get_dummies(titanic_data['Sexo'], drop_first = Certo)
embarked_data = pd.get_dummies(titanic_data[‘Embarcado’], drop_first = Certo)

Adicionar variáveis ​​fictícias ao DataFrame e remover dados não numéricos

titanic_data = pd.concat([titanic_data, sex_data, embarked_data], eixo = 1)
titanic_data.soltar(['Nome', ‘PassengerId’, 'Bilhete', 'Sexo', ‘Embarcado’], eixo = 1, em seu lugar = Certo)

Imprima o conjunto de dados finalizado

titanic_data.cabeça()

45986final-data-frame-5467311

Divida o conjunto de dados em dados x e y

y_data = titanic_data[‘Sobreviveu’]
x_data = titanic_data.soltar(‘Sobreviveu’, eixo = 1)

Divida el conjunto de datos en datos de Treinamento y datos de prueba

a partir de Claro.model_selection importar train_test_split
x_training_data, x_test_data, y_training_data, y_test_data = train_test_split(x_data, y_data, test_size = 0,3)

Crie o modelo

a partir de Claro.Modelo linear importar Regressão logística
modelo = Regressão logística()

Treine o modelo e crie previsões

modelo.encaixar(x_training_data, y_training_data)
previsões = modelo.prever(x_test_data)

Calcular métricas de desempenho

a partir de Claro.Métricas importar classificação_report
Imprimir(classificação_report(y_test_data, previsões))

 precision    recall  f1-score   support

           0       0.83      0.87      0.85       169

           1       0.75      0.68      0.72        98

    accuracy                           0.80       267

   macro avg       0.79      0.78      0.78       267

weighted avg       0.80      0.80      0.80       267

Gere uma matriz de confusão

a partir de Claro.Métricas importar matriz de confusão
Imprimir(matriz de confusão(y_test_data,
previsões)

[[145  22]

 [ 30  70]]

Com isso eu termino este blog.
Olá a todos, Namaste
Chamo-me Pranshu Sharma e eu sou um entusiasta da ciência de dados
Muito obrigado por dedicar seu valioso tempo para ler este blog.. Sinta-se à vontade para apontar quaisquer erros (depois de tudo, eu sou um aprendiz) e fornecer os comentários correspondentes ou deixar um comentário.
Dhanyvaad !!
Comentários:
Correio eletrônico: [e-mail protegido]

A mídia mostrada neste artigo não é propriedade da DataPeaker e é usada a critério do autor.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.