Regressão Logística

Ricardo Araujo
5 min readNov 8, 2020

Um classificador linear simples é um separador linear (reta, plano ou hiperplano) que separa duas classes. A saída do classificador linear é diretamente a classe: verificamos se o resultado da equação linear aplicada aos atributos é positivo ou não e isto nos dá a classe. Para tanto, aplica-se os atributos em uma equação linear ajustada cujo resultado alimenta uma função degrau: 0 para todo valor de entrada menor ou igual a zero e 1 para todo valor maior que zero.

Um classificador linear com dois atributos (x1 e x2)

Algo desejável em modelos de aprendizado de máquina é que estes possuam alguma forma de comunicar a incerteza do resultado: isto é, o quão confiante o modelo está na sua saída. Isso pode ser feito de forma natural a partir de probabilidades associadas às saídas. Por exemplo, no lugar de apenas 0 ou 1 indicando a classe, podemos ter um valor real que indica a probabilidade do exemplo de entrada pertencer a uma das classe. Uma probabilidade 1.0 indicaria máxima confiança de que o exemplo pertence a esta classe, enquanto 0.0 indicaria máxima confiança que o exemplo pertence a outra classe, enquanto algo entre estes extremos indicaria menores confianças (idealmente teríamos probabilidades independentes para cada classe, mas mantemos simples por hora).

Desejamos que o modelo aprenda uma probabilidade condicional p(c|x), a probabilidade da classe ser c dado o exemplo x. Para o classificador linear, uma maneira de fazer isso é substituir a função degrau por uma função logística, o que dá origem à Regressão Logística.

A função logística é uma função que converte “chances” (odds, aqui mais especificamente log-odds) de um evento ocorrer para uma probabilidade (entre 0 e 1). O conceito de chances é como o usado em jogos de aposta, onde dizemos que as chances de um evento ocorrer são e.g. 10–1 (dez-para-um) e é apenas uma outra forma de representação de probabilidades. Por exemplo, se um evento tem probabilidade 0,8 de ocorrer e, portanto, 0,2 de não ocorrer, então as chances de ocorrer são 0.8/0.2 = 4 (ou quatro-para-um), o que significa dizer que é quatro vezes mais provável que o evento ocorra do que não ocorra. A função logística mapeia o logaritmo das chances (4) de volta para probabilidade (0,8):

A função logística pertence à família de funções sigmóides, que são funções que possuem o formato de “S”. Abaixo está a representação da função logística para o intervalo [-5,5]:

A função logística para o intervalo [-5,5]

Assim, uma forma de representar um modelo baseado em Regressão Logística é como abaixo:

Alteração do classificador linear para representar a Regressão Logística

Podemos treinar um modelo baseado em regressão logística com virtualmente qualquer algoritmo de otimização, como para o classificador linear; descida de gradiente é bastante comum. Há porém diversos algoritmos de treinamento que comumente são associados a regressão logística, especialmente no contexto da Estatística, como Maximum Likelihood Estimation, que ajusta a curva logística diretamente aos dados.

Geometricamente, a probabilidade dada pela regressão logística indica o quão distante o exemplo está do hiperplano separador. Abaixo temos a superfície de decisão de uma regressão logística com dois atributos. Observe que apesar da função logística não ser linear, a regressão logística ainda é um classificador linear.

Fonte: Stackoverflow

É importante notar que a saída da regressão logística é um valor real, indicando uma probabilidade — logo, o modelo é um regressor e não um classificador. Podemos porém utilizá-lo como classificador estabelecendo um limiar para o valor de probabilidade para fazer a separação das classes; por exemplo, podemos dizer que se p>0,5 então a classe é positiva, senão é negativa.

A escolha do limiar afeta a relação entre falsos positivos e falsos negativos: se aumentarmos o limiar, menos exemplos serão classificados como positivos (menor taxa de falsos positivos); se reduzirmos, mais serão classificados como positivos (maior taxa de positivos verdadeiros). Podemos traçar uma curva demonstrando a relação entre estas taxas conforme variamos o limiar. Esta curva é conhecida como curva ROC, de Receiver Operating Characteristic, nome com origem na análise de receptores de radar na segunda guerra mundial.

Curvas ROC. Cada cor indica um modelo. Fonte: Wikipedia.

Cada cor nas curvas acima indica um modelo diferente e cada ponto na curva indica um limiar diferente. O classificador perfeito terá zero falsos positivos e máxima taxa de verdadeiros positivos. Quanto mais próximo desse ponto, melhor o classificador e o limiar. Variando o limiar, temos diferentes relações entre TPR (True Positive Rate, Taxa de Positivos Verdadeiros) e FPR (False Positive Rate, Taxa de Falsos Positivos). Um classificador completamente aleatório terá todos seus pontos na diagonal principal.

Esta curva nos ajuda a escolher um valor adequado para o limiar, mas também pode ser usada para quantificar o desempenho do classificador de forma independente do limiar. Para tanto, tomamos a área sobre a curva ROC, comumente chamada AUC (Area Under the Curve). Um AUC de 0,5 equivale ao classificador aleatório, enqaunto um AUC de 1,0 equivale a um classificador perfeito.

Uma vantagem da AUC em relação a acurácia para ranquear modelos é que esta independe do limiar escolhido e é robusta quando os dados são desbalanceados — isto é, enquanto é possível obter alta acurácia em dados desbalanceados simplesmente chutando a classe majoritária, a AUC será baixa. Uma desvantagem é que a AUC somente se aplica diretamente a problemas de classificação binários; para problemas multi-classe, é comum calcular a AUC de uma classe contra todas as demais, ou a média de todos pares de classes.

--

--

Ricardo Araujo

Computer Science professor at UFPel. Machine Learning and Artificial Intelligence practitioner and researcher.