Logistic Regression
A regressão logística transforma uma soma ponderada de características em uma probabilidade de classe usando a função sigmoide. Veja como é treinada, como interpreta os resultados em termos de odds e como usa limiares.
A regressão logística é um método de aprendizagem supervisionada para classificação que estima a probabilidade de uma entrada pertencer a uma classe, passando uma soma ponderada das suas características pela função logística, ou sigmoide. O nome inclui «regressão» porque o modelo faz a regressão das log-odds da classe em função das características, mas é usado para classificar: um filtro de spam, um modelo de crédito ou um teste de rastreio converte a probabilidade numa decisão sim/não através de um limiar. Joseph Berkson desenvolveu-a como modelo estatístico geral a partir de 1944, ano em que cunhou o termo «logit», e continua a ser a referência padrão para classificar dados tabulares porque é treinada em segundos, produz probabilidades e os seus pesos podem ser interpretados diretamente como efeitos nas odds.
Como funciona a regressão logística#
O modelo calcula uma pontuação, z = w·x + b, exatamente como a regressão linear, e depois converte-a numa probabilidade, p = 1 / (1 + e⁻ᶻ). A sigmoide comprime qualquer pontuação para o intervalo de 0 a 1, devolve 0,5 quando z = 0 e aproxima-se de 1 ou 0 à medida que z aumenta bastante numa ou noutra direção. A inversão mostra o significado da pontuação: z é igual às log-odds, log(p / (1 − p)), pelo que o modelo pressupõe que as log-odds da classe positiva variam linearmente com cada característica e que a sua fronteira de decisão é uma reta, um plano ou um hiperplano. Um aumento de uma unidade numa característica multiplica as odds por eʷ, sendo w o peso dessa característica, razão pela qual estudos médicos e de crédito apresentam os resultados da regressão logística como rácios de odds.
O treino define os pesos por máxima verosimilhança, o que equivale a minimizar a perda logarítmica, também chamada entropia cruzada binária: −[y·log(p) + (1 − y)·log(1 − p)], calculada como média sobre os dados de treino. A perda é convexa, pelo que tem um único mínimo, mas não tem solução em forma fechada; por isso, métodos como L-BFGS, o método de Newton ou a descida do gradiente chegam a esse mínimo iterativamente. Sem uma penalização, as classes que um hiperplano separa perfeitamente fazem os pesos tender para infinito, pelo que as bibliotecas adicionam regularização por predefinição: a LogisticRegression do scikit-learn aplica uma penalização L2 com C = 1.0, e valores menores de C implicam uma regularização mais forte. Como a perda logarítmica recompensa probabilidades precisas, uma regressão logística bem especificada e regularizada de forma adequada tende a devolver probabilidades bem calibradas, uma propriedade medida por pontuações como a pontuação de Brier.
Limiar de decisão#
Um limiar converte cada probabilidade num rótulo, e 0,5 é apenas o valor predefinido. Alterá-lo cria um compromisso entre precisão e revocação: um modelo de rastreio do cancro reduz o limiar para não deixar passar tantos tumores, enquanto um filtro de spam aumenta-o para evitar ocultar mensagens legítimas. A curva ROC representa este compromisso para todos os limiares, e a área sob a curva mede a capacidade do modelo para ordenar os positivos acima dos negativos. Este exemplo treina uma regressão logística com o conjunto de dados de cancro da mama de Wisconsin, incluído no scikit-learn, e compara dois limiares:
from sklearn.datasets import load_breast_cancer
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import precision_score, recall_score
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
X, y = load_breast_cancer(return_X_y=True)
y = 1 - y # make malignant (originally 0) the positive class
X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, random_state=0)
# Standardize the 30 features, then fit weights by minimizing log loss
model = make_pipeline(StandardScaler(), LogisticRegression())
model.fit(X_train, y_train)
# Predicted probability of malignancy, turned into labels at two thresholds
proba = model.predict_proba(X_test)[:, 1]
for threshold in (0.5, 0.1):
pred = (proba >= threshold).astype(int)
print(
f"Threshold {threshold}: precision {precision_score(y_test, pred):.3f}, recall {recall_score(y_test, pred):.3f}"
)Com o limiar predefinido de 0,5, todos os tumores assinalados pelo modelo são malignos (precisão 1.000), e o modelo não deteta 2 dos 53 tumores malignos do conjunto de teste (revocação 0.962). Com 0,1, deteta os 53 (revocação 1.000) e também assinala 11 dos 90 tumores benignos (precisão 0.828).
Classificadores multiclasse e de redes neuronais#
Para mais de duas classes mutuamente exclusivas, a regressão logística multinomial calcula uma pontuação por classe e converte as pontuações em probabilidades cuja soma é 1 através da função softmax, sendo treinada com a perda de entropia cruzada; a abordagem um-contra-o-resto treina, em alternativa, um modelo binário separado para cada classe. Os problemas multirrótulo, em que uma entrada pode ter vários rótulos ao mesmo tempo, usam uma sigmoide independente por classe.
A camada de saída da maioria das redes neuronais de classificação corresponde a um destes modelos aplicado às características aprendidas pelas camadas anteriores, como nas redes de classificação de imagens, que terminam numa camada linear e numa softmax. A cabeça de deteção do YOLO26 termina cada ramo de classificação numa convolução 1×1 que produz um logit por classe em cada localização da grelha; uma sigmoide converte cada logit numa pontuação de classe independente, treinada com entropia cruzada binária, pelo que cada pontuação de classe corresponde a uma regressão logística sobre as características dessa localização. O argumento conf do modo predict, cujo valor predefinido é 0.25, é o limiar de decisão aplicado a essas pontuações.
Aplicações#
- Pontuações de risco clínico: Os modelos estimam a probabilidade de uma doença, complicação ou readmissão hospitalar com base na idade, na pressão arterial e nos valores laboratoriais; os rácios de odds mostram aos profissionais de saúde quanto cada fator aumenta o risco.
- Pontuação de crédito: Os credores criam sistemas de pontuação de crédito com regressão logística porque a contribuição de cada característica para a pontuação pode ser explicada aos requerentes e aos reguladores.
- Previsão de cliques em anúncios: O artigo de 2013 da Google sobre o seu sistema de produção para cliques descreveu uma regressão logística treinada online com o algoritmo FTRL-Proximal, que mantém o modelo esparso, para estimar a probabilidade de um utilizador clicar num anúncio.
- Previsão de cancelamentos: As empresas de subscrição estimam a probabilidade de cada cliente cancelar no período seguinte e direcionam ofertas de retenção para as contas com maior risco.
Regressão logística vs. métodos relacionados#
- Regressão linear com rótulos 0/1: Ajustar o erro quadrático aos rótulos das classes produz previsões abaixo de 0 e acima de 1, e os pontos afastados da fronteira, mesmo os classificados corretamente, influenciam o ajuste; a sigmoide e a perda logarítmica evitam este problema.
- Máquinas de vetores de suporte (SVM): Uma SVM linear também aprende um hiperplano, mas minimiza a perda hinge para maximizar a margem e produz distâncias à fronteira em vez de probabilidades.
- Naive Bayes: Um classificador generativo que modela a forma como as características surgem em cada classe e que forma um par clássico com a regressão logística, a sua contraparte discriminativa. Ng e Jordan (2001) mostraram que o naive Bayes se aproxima do seu erro assintótico mais elevado com menos exemplos de treino, enquanto a regressão logística atinge um erro inferior quando há muitos dados.
- Perceptron: Aplica uma função degrau à mesma soma ponderada, produz apenas 0 ou 1 e atualiza os pesos apenas quando classifica incorretamente um exemplo de treino.










