Regressão logística em profundidade
Uma técnica estatística popular para resolver problemas de classificação no aprendizado de máquina é a regressão logística. A regressão logística é um método para prever resultados binários, como “sim” ou “não” ou “verdadeiro” ou “falso”, em oposição à regressão linear, que é usada para prever resultados contínuos. A função logística, que converte qualquer entrada com valor real em um número entre 0 e 1, serve de base para o modelo de regressão logística. Daremos uma explicação completa da regressão logística neste post, cobrindo sua base matemática e derivação. Primeiramente, começaremos com a função sigmoide e depois falaremos sobre o modelo de regressão logística. No entanto, se você quiser saber mais sobre as funções de ativação, consulte este artigo.
Funções de ativação no aprendizado de máquinaA função sigmoide
Uma expressão matemática chamada função sigmóide converte qualquer entrada de valor real em um número entre 0 e 1 e também conhecida como função logística. A função sigmóide pode ser definida da seguinte forma:
onde:
- z denota uma linha de classificação que se assemelha a uma regressão linear,
- e é a base do logaritmo natural.
Em redes neurais artificiais, a função sigmóide é freqüentemente utilizada como uma função de ativação. Com base em suas entradas e pesos, a saída de um neurônio é determinada por uma função de ativação em uma rede neural. A rede neural é amplamente utilizada em aprendizado de máquina, mas não a discutiremos neste artigo. Se você quiser saber mais, confira este artigo ( a ser publicado ).
O modelo de regressão logística
O modelo de regressão logística faz previsões sobre a probabilidade de um resultado binário (verdadeiro/falso ou sim/não) com base em um ou mais recursos de entrada usando uma função logística. A probabilidade projetada da classe positiva é representada pela saída da função logística, que varia de 0 a 1. A observação é então classificada como positiva se a probabilidade prevista exceder o limite, que é comumente definido em 0,5, para determinar a previsão aula. Ao reduzir a verossimilhança logarítmica negativa dos dados, que reflete a disparidade entre as probabilidades antecipadas e os rótulos de classe reais, os coeficientes do modelo de regressão logística são otimizados. A função de custo para a regressão logística costuma ser chamada de perda de entropia cruzada binária.
A função de erro de entropia cruzada binária
Uma função de perda comum em aprendizado de máquina, especialmente para problemas de classificação binária, é a função de erro de entropia cruzada binária. Ele calcula a diferença entre o verdadeiro rótulo de uma variável de destino binária e a probabilidade antecipada. Na classificação binária, o objetivo é prever a probabilidade da variável alvo dado um conjunto de características. A variável de destino pode assumir apenas dois valores, como 0 e 1. A função de erro de entropia cruzada binária é definida da seguinte forma:
onde:
- y_n é a probabilidade prevista para a classe positiva,
- t_n é o rótulo verdadeiro, 0 ou 1,
- e J é uma função objetivo que tentamos minimizar ou maximizar .
No entanto, usaremos a derivada parcial da função binária de erro de entropia cruzada em relação aos parâmetros para determinar os coeficientes do modelo de regressão logística para valores ótimos. Vamos começar derivando parcialmente a função de custo para encontrar os valores ótimos dos pesos da regressão logística. Podemos começar determinando a derivada de J em relação a y_n. Depois disso, podemos encontrar a derivada de y_n em relação à entrada da função sigmóide, que serve como função de ativação da regressão logística, e então podemos derivar a derivada de a em relação aos pesos.
Em seguida, podemos obter a expressão para determinar o valor ideal do termo de viés, onde o viés é normalmente definido como 1. Além disso, o viés pode ser incluído nos pesos incluindo um valor de 1.
Após obter as expressões dos parâmetros de busca, podemos passar para a implementação na linguagem de programação python.
import numpy as np
N = 100
def sigmoid_function(an):
return 1/(1 + np.exp(-an))
def binary_cross_entropy(T, Y):
E = 0
for i in range(len(T)):
if T[i] == 1:
E -= np.log(Y[i])
else:
E -= np.log(1 - Y[i])
return E
#short overwiev of updating process of w's
learning_rate = 0.01
for i in range(N):
# gradient descent weight udpate
w += learning_rate * Xb.T.dot(Y - T)
# recalculate Y
Y = sigmoid(Xb.dot(w))
from sklearn.linear_model import LogisticRegression
clf = LogisticRegression(random_state=0).fit(X, y)
clf.predict_proba(X)
clf.score(X, y)
Adicionar um termo de penalidade também permite que a função de custo seja modificada. O overfitting pode ser evitado na regressão logística e na regressão linear por meio da regularização. Este termo incentiva os coeficientes a terem pequenas magnitudes, reduzindo seu impacto nas previsões do modelo. A penalidade da regularização L1, também chamada de Laço, é igual ao valor absoluto dos coeficientes, mas a penalidade da regularização L2, também chamada de Ridge, é igual ao quadrado dos coeficientes. Esses dois métodos de regularização são típicos e discutiremos esses dois métodos de regularização no próximo artigo ( a ser publicado ).
Classificação multiclasse
Questões de classificação multiclasse, em que o resultado pode ter mais de dois valores, podem ser tratadas usando uma extensão de regressão logística. Normalmente, vários modelos de regressão logística binária são treinados, um para cada aula, usando o método um contra todos ou um contra descanso. A previsão é então feita para a classe com a maior probabilidade antecipada.
Limitação
Devido ao fato de a regressão logística usar um modelo linear, ela pode não ser adequada para dados quando há correlações complexas entre as variáveis independentes e o resultado binário. Além disso, a regressão logística não oferece uma estimativa da variância das probabilidades previstas, o que é importante para a compreensão e avaliação do modelo.
Se você gostou do artigo, certifique-se de me seguir para ver meus novos artigos.





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)