Escrito por Miguel Cyrineu Vale
Tópicos Abordados
- Intuição Lógica e Aplicações Práticas
- Métricas de Avaliação
Fundamentos
Vamos supor que você seja um médico, mas está tendo dificuldades em identificar se seus pacientes tem doença cardíaca.
Normalmente, para fazer isso, você analisaria diversos indicadores da saúde do paciente: Idade, colesterol, pressão, etc., e utiliza seus conhecimentos e experiência para dizer se é provavel que aquela pessoa tenha uma doença cardíaca. No entanto, nem sempre é fácil tomar essa decisão apenas com base na intuição ou na experiência: alguns pacientes apresentam sintomas sutis ou resultados inconclusivos nos exames, dificultando seu trabalho.
É aí que entra a regressão logística: uma ferramenta estatística que nos ajuda a transformar dados quaisquer em respostas de “sim” ou “não” (nesse caso, se o paciente tem ou não a doença).
A Regressão logística é bastante similar à regressão linear, mas com um passo a mais, que é a aplicação da função logística (ou sigmoid). Na regressão linear, usamos uma função linear para prever um valor contínuo (isto é, que pode ser qualquer número de -infinito até +infinito) – o que nos dá uma linha que prevê os valores. Já aqui, na regressão logística, passamos esse valor gerado pela regressão linear pela função logística, que “aperta” esse valor entre
(não) e
(sim). Isso nos dá uma curva em “S”, que prevê a chance de “sim” e de “não”.
Mas como assim uma curva em “S”? E como essa curva nos dá probabilidades? Vamos começar visualizando o problema:

Olhando esse gráfico, conseguimos perceber algumas tendências: que pacientes mais velhos têm mais chance de ter doença cardíaca, e que, a partir dos ~50 anos, começa a ser mais comum ter doença cardíaca do que não ter.
Com isso, nosso objetivo é achar uma função logística que melhor represente esses dados, assim como fizemos com a regressão linear – mas aqui, a função tem formato de “S”, não de uma linha. Mas como fazemos isso?
Primeiro, precisamos saber o que estamos buscando. Queremos minimizar o quanto esse algoritmo erra no total – ou seja, ela deve minimizar o número de erros, tal que a média entre as previsões e as verdades deve ser a menor possível. Com isso, utilizamos modelos matemáticos para definir os
Vamos ver como fica a função logística de melhor ajuste:

Como podemos ver, a linha preta aproxima a chance de uma pessoa ter doença cardíaca, dada sua idade.
Sua equação matemática é:

Essa equação tem duas partes importantes.
A primeira parte é a uma equação linear:
(sendo
a idade). Essa equação, de forma muito similar à regressão linear, modela como a idade afeta a probabilidade de doença cardíaca.
O número
(coeficiente angular) nos indica como a probabilidade muda com a idade. Neste caso, há uma correlação positiva, mas pequena, indicando que idades maiores contribuem para as chances de se ter doenças cardíacas, mesmo que lentamente.
Já o número
(viés ou intercepto) tende a enviesar as predições negativamente, tal que idades menores tenham chances muitos baixas de ter doenças cardíacas.
Já a segunda parte é a função logística (ou sigmoide). Essa função pega os valores retornados pela equação linear
, e os “comprime” entre 0 e 1 (sim ou não). Dessa forma, valores grandes de saída (de 5 pra cima) vão corresponder a chances altas (>0.9), enquanto valores pequenos (-5 pra baixo) vão corresponder a chances baixas (<0.1). Ela é representada por:
.
Juntando as duas, temos uma função que pega valores contínuos, representando característica dos dados observados (como idade, colesterol, pressão arterial etc), e os transforma em um valor entre 0 e 1 – que representa a probabilidade de um dado evento:

Podemos até fazer previsões com essa função criada por nós:
Ou seja, a chance de um paciente de 38 anos ter doença cardíaca é de aproximadamente
.
Para visualizar melhor como cada parâmetro nessa função afeta a curva de predição, aqui está um gráfico interativo:
Intuição matemática
Matematicamente, a regressão logística é muito similar à regressão linear, com apenas uma função logística (sigmoid) “acoplada” no final, para transformar a saída de um valor contínuo para um valor entre 0 e 1.
Para melhor entender isso, vamos supor que temos uma regressão linear P(X):

O resultado de uma regressão logística similar será a mesma coisa, mas passado pela função logística (
):

(veja que o
está elevando o e no divisor da fração, no lugar do x da função logística)
Métricas de avaliação da Regressão Logística
Na regressão linear, podemos usar o Coeficiente de Pearson para medir o quão forte é a relação linear entre duas variáveis, e métricas como o MAE para medir o erro do nosso modelo. No entanto, como aqui a nossa clasificação é binária, essas métricas não funcionam, e temos que usar algumas diferentes.
Coeficiente de correlação ponto-bisserial
A primeira delas, muito similar ao Coeficiente de Pearson, é o Coeficiente de correlação ponto-bisserial. Representado por
ou apenas
, ele nos diz o quão bem nosso modelo representa os dados, de -1 (correlação inversa) a 1 (correlação direta), sendo que 0 significa que o modelo não representa os dados de nenhuma maneira.
O Coeficiente de pearson é calculado com a fórmula:

Sendo que
é o desvio padrão, calculado como:

lembrando que você não precisa decorar essa formula! Utilizamos ela no python, que já tem ferramentas com ela pronta.
Utilizando essa fórmula no nosso conjunto de dados, obtemos
, ou seja, nosso algoritmo modelou os dados com uma forte correlação positiva, indicando que a idade é diretamente relacioada com a doença cardíaca, e que ele está funcionando com sucesso.
Acurácia
Outra métrica boa para medir a performance do nosso modelo é a acurácia. Diferentemente da Correlação ponto-bisserial, que mede a correlação, ela mede a performance efetiva do modelo. Ela é bem simples: mede a porcentagem de acertos que nosso modelo teve.
Por exemplo, vamos supor que temos 5 casos que vamos usar para testar nosso modelo, e eles são:
- 32 anos, SEM doença cardíaca.
- 80 anos, COM doença cardíaca.
- 65 anos, SEM doença cardíaca.
- 18 anos, SEM doença cardíaca.
- 72 anos, COM doença cardíaca.
Para calcular a acurácia, rodamos cada caso em nosso modelo, e comparamos as previsões com os dados reais. Vamos supor que esse foi o resultado:
Idade ( ) | Dado real ( ) | Previsão ( ) |
![]() | NÃO | NÃO |
![]() | SIM | SIM |
![]() | NÃO | SIM |
![]() | NÃO | NÃO |
![]() | SIM | SIM |
Nesse caso, temos quatro acertos para os pacientes de
,
,
e
anos, e um erro para o paciente de
anos. Isso significa que, para os
casos totais, acertamos
, ou seja, nossa acurácia será de
ou
.
Formalmente, a definição de acurácia é:

onde
significa True Positive, ou Verdadeiro positivo,
significa True Negative, ou Verdadeiro Negativo,
significa False Positive, ou falso positivo e
significa False Negative, ou falso negativo.


