Introdução Regressão linear vs. Regressão logística

Introdução Regressão linear vs. Regressão logística
Embora o aprendizado de máquina não seja novo, agora há mais dados do que nunca, contribuindo para sua recente popularidade. Veremos dois algoritmos populares de aprendizado de máquina: regressão linear e regressão logística com matemática e implementação.

O que é regressão linear?

A regressão linear é um algoritmo de aprendizado de máquina supervisionado simples, porém eficaz, para prever variáveis ​​contínuas. A regressão linear procura determinar como a variável de entrada (variável explicativa) varia da variável de saída (variável de resposta). Muitos algoritmos avançados de aprendizado de máquina supervisionados são baseados em conceitos de regressão linear. A regressão linear é comumente usada em problemas de aprendizado de máquina para prever variáveis ​​contínuas em que o alvo e as variáveis ​​de recurso têm um relacionamento linear.

A seguir, são apresentados os principais componentes de uma regressão linear simples: variável de entrada contínua, variável de resposta contínua e as suposições de regressão linear são atendidas.

Suposições de regressão linear:

  1. As variáveis ​​de entrada (x) têm uma relação linear com a variável alvo (y). Além disso, os coeficientes variáveis ​​de entrada não devem ser correlacionados entre si.
  2. O termo de erro é distribuído igualmente em torno de 0, portanto o valor esperado do termo de erro é e (e) = 0.

Como funciona a regressão linear?

Um modelo de regressão linear tenta ajustar uma linha que passa pelo número mais significativo de pontos, minimizando a distância quadrada (função de custo) dos pontos para os valores de linha ajustados, dado um conjunto de entradas de pontos de dados (x) e respostas (y).

Como resultado, a função de custo é finalmente minimizada. A função de custo para a regressão linear é geralmente Erro ao quadrado médio:

A equação de regressão é escrita como y = β1X + βo.

O termo c representa a interceptação, m representa a inclinação da linha de regressão, x representa a variável de entrada e y representa o valor previsto da variável de resposta.

Sabemos pela matemática básica que uma linha reta é identificada por dois parâmetros: inclinação e interceptação. O algoritmo de regressão linear seleciona alguns parâmetros iniciais e os atualiza continuamente para minimizar o desvio padrão. Abaixo está a imagem mostrando a linha de regressão (azul), os desvios (verde) e os pontos de dados (vermelho).

A regressão linear também pode ser estendida a várias variáveis ​​de entrada, e a abordagem permanece exatamente a mesma. A equação da linha para várias variáveis ​​é representada por:

Uma demonstração sobre regressão linear

Vamos prever uma variável de destino usando uma única variável de entrada. O exemplo abaixo e o conjunto de dados são do Scikit-Learn documentação oficial. Scikit-Learn é uma biblioteca amplamente usada para o desenvolvimento de modelos de aprendizado de máquina.

importar matplotlib.pyplot como plt
importar numpy como np
De dados de importação da Sklearn, linear_model
de Sklearn.métricas importantes mean_squared_error, r2_score
# Carregue o conjunto de dados do diabetes
diabetes_x, diabetes_y = conjuntos de dados.load_diabetes (return_x_y = true)
# Use apenas um recurso
diabetes_x = diabetes_x [:, np.newaxis, 2]
# Dividir os dados em conjuntos de treinamento/teste
diabetes_x_train = diabetes_x [:-20]
diabetes_x_test = diabetes_x [-20:]
# Divida os alvos em conjuntos de treinamento/teste
diabetes_y_train = diabetes_y [:-20]
diabetes_y_test = diabetes_y [-20:]
# Crie objeto de regressão linear
REGR = Linear_model.Regressão linear()
# Treine o modelo usando os conjuntos de treinamento
Reg.ajuste (diabetes_x_train, diabetes_y_train)
# Faça previsões usando o conjunto de testes
diabetes_y_pred = regred.prever (diabetes_x_test)
# O erro médio quadrado
print ("Erro ao quadrado médio: %.2f " % mean_squared_error (diabetes_y_test, diabetes_y_pred))

Saída

Erro ao quadrado médio: 2548.07

O que é regressão logística?

Regressão logística é um algoritmo de classificação. É um algoritmo de tomada de decisão, o que significa que procura os limites entre duas classes e simula as probabilidades de uma única classe. Como a entrada é discreta e pode levar dois valores, ela é normalmente usada para classificação binária.

A variável alvo na regressão linear é contínua, o que significa que pode assumir qualquer valor de número real, enquanto, na regressão logística, queremos que nossa saída seja probabilidade (entre 0 e 1). A regressão logística é derivada da regressão linear, mas adiciona uma camada extra de função sigmóide para garantir que a saída permaneça entre 0 e 1.

Como funciona a regressão logística?

A regressão logística é um algoritmo de aprendizado de máquina simples e amplamente usado, especialmente para problemas de classificação binária. Esta extensão do algoritmo de regressão linear usa uma função de ativação sigmóide para limitar a variável de saída entre 0 e 1. Suponha que precisamos construir um modelo de aprendizado de máquina; em seguida, cada ponto de dados de variável independente será x1 * w1 + x2 * w2… e assim por diante, e isso dará um valor entre 0 e 1 quando passado pela função de ativação se usarmos 0.50 como um valor ou limiar decisivo. Então, qualquer resultado maior que 0.5 é considerado um 1 e qualquer resultado menor que esse é considerado 0. A função de ativação sigmóide é representada como:

Podemos ver no gráfico que a variável de saída é restrita entre 0 e 1.

Em cenários de mais de duas classes, usamos um vs. Toda a abordagem de classificação. Dividir o conjunto de dados de várias classes em vários problemas de classificação binária é o que um vs. Descanso é tudo sobre.

Em cada problema de classificação binária, um classificador binário é treinado e as previsões são feitas usando o modelo com a maior confiança.

Implementando a regressão logística

Abaixo está o script da documentação oficial do Scikit-Learn para classificar a flor da íris com base em vários recursos.

>>> De Sklearn.conjuntos de dados importando load_iris
>>> De Sklearn.Linear_model Import LogisticRegression
>>> x, y = load_iris (return_x_y = true)
>>> clf = LogisticRegression (random_state = 0).ajuste (x, y)
>>> clf.prever (x [: 2 ,:])
Array ([0, 0])
>>> clf.Predict_Proba (x [: 2 ,:])
Array ([[9.8… e-01, 1.8… e-02, 1.4… e-08],
[9.7… e-01, 2.8… e-02,… e-08]])
>>> clf.pontuação (x, y)
0.97…

Conclusão

Passamos pela introdução da regressão logística e linear, discutimos a matemática subjacente envolvida e passamos pela parte da implementação de cada um deles. Podemos concluir que a regressão linear ajuda a prever variáveis ​​contínuas, enquanto a regressão logística é usada no caso de variáveis ​​de destino discretas. A regressão logística faz isso aplicando a função de ativação sigmóide na equação de regressão linear.