Regressão Linear/Logística

Título do artigo: Regressão Linear/Logística
Descrição do artigo: Linhas de base (baselines), interpretabilidade (interpretability) e o papel da regularização (regularization).

Por que a regressão linear e a regressão logística importam

A regressão linear (linear regression) e a regressão logística (logistic regression) costumam ser os primeiros modelos ensinados em aprendizado de máquina (machine learning) — e continuam amplamente usadas em sistemas reais. Seu valor duradouro vem de três forças práticas:

  • Linhas de base fortes: São rápidas para treinar, difíceis de “quebrar” e surpreendentemente competitivas em muitos problemas com dados tabulares.
  • Interpretabilidade: O comportamento do modelo está diretamente ligado aos coeficientes, o que facilita explicar, depurar e auditar.
  • Regularização como um botão de controle: Com a regularização certa, elas lidam com dados de alta dimensionalidade, reduzem o sobreajuste (overfitting) e podem até realizar seleção de atributos (feature selection).

Ambos os modelos ficam na caixa de ferramentas de “ML clássico (classical ML)”, ao lado de métodos como Árvores de Decisão e Conjuntos (Decision Trees & Ensembles) e Máquinas de Vetores de Suporte (SVMs). Em muitos fluxos de trabalho, você constrói primeiro uma linha de base linear/logística e só então passa para modelos mais complexos, se necessário.

Regressão linear

Configuração do problema

Você tem dados de treinamento ((x_i, y_i)) para (i=1,\dots,n), em que (x_i \in \mathbb{R}^d) são atributos e (y_i \in \mathbb{R}) é um alvo real (por exemplo, preço).

Um modelo de regressão linear assume:

[ \hat{y} = w^\top x + b ]

em que (w \in \mathbb{R}^d) são os pesos (weights) e (b) é um intercepto (intercept).

Mínimos quadrados ordinários (OLS)

O objetivo mais comum é minimizar o erro quadrático médio (mean squared error) (MSE):

[ \min_{w,b} \frac{1}{n} \sum_{i=1}^n (y_i - (w^\top x_i + b))^2 ]

Isso é convexo (convex), então tem um único ótimo global (global optimum). Em forma matricial (com um termo de intercepto incluído em (X)), a solução de OLS pode ser escrita como:

[ \hat{w} = (X^\top X)^{-1} X^\top y ]

quando (X^\top X) é inversível. Na prática, solucionadores numéricos usam decomposições QR/SVD (QR/SVD decompositions) para estabilidade, especialmente quando os atributos são correlacionados.

Visão probabilística (ruído Gaussiano)

OLS corresponde à máxima verossimilhança (maximum likelihood) sob uma hipótese de ruído Gaussiano (Gaussian noise):

[ y = w^\top x + b + \epsilon,\quad \epsilon \sim \mathcal{N}(0, \sigma^2) ]

Essa visão é útil porque motiva estimativas de incerteza e se conecta naturalmente à regularização via distribuições a priori (priors) (veja “Regularização” abaixo e Modelos Bayesianos (Bayesian Models)).

Regressão logística

Configuração do problema (classificação binária)

A regressão logística é usada quando (y \in {0,1}). Ela modela a probabilidade da classe 1:

[ p(y=1 \mid x) = \sigma(z) = \frac{1}{1 + e^{-z}}, \quad z = w^\top x + b ]

A quantidade (\log\frac{p}{1-p}) (log-odds) é linear:

[ \log\frac{p(y=1\mid x)}{1-p(y=1\mid x)} = w^\top x + b ]

Essa interpretação em termos de log-odds é uma razão importante pela qual a regressão logística é popular em domínios que exigem explicabilidade (explainability) (saúde, finanças, políticas públicas).

Função de perda (entropia cruzada / perda logarítmica)

Os parâmetros tipicamente são aprendidos minimizando a log-verossimilhança negativa (negative log-likelihood):

[ \min_{w,b} \frac{1}{n}\sum_{i=1}^n \Big( -y_i \log p_i - (1-y_i)\log(1-p_i) \Big) ]

onde (p_i=\sigma(w^\top x_i+b)). Esse objetivo também é convexo, permitindo uma otimização confiável.

Regressão logística multiclasse (softmax)

Para (K>2) classes, a regressão logística generaliza para regressão softmax (softmax regression):

[ p(y=k\mid x) = \frac{e^{w_k^\top x + b_k}}{\sum_{j=1}^K e^{w_j^\top x + b_j}} ]

Alternativamente, você pode usar um-contra-o-resto (one-vs-rest), mas softmax é um único modelo probabilístico coerente.

Modelos lineares como linhas de base

Por que são difíceis de superar como primeiro passo

A regressão linear/logística são excelentes linhas de base porque:

  • Treinam rápido (frequentemente em segundos em grandes conjuntos tabulares).
  • Têm comportamento previsível e poucas peças móveis.
  • Fornecem uma checagem de sanidade para atributos, vazamento do alvo (target leakage) e pipelines de avaliação (evaluation pipelines).
  • Funcionam bem quando a relação verdadeira é próxima de linear nos atributos (ou pode ser tornada assim com engenharia de atributos (feature engineering)).

Mesmo quando você finalmente coloca em produção Árvores de Decisão e Conjuntos, uma linha de base de modelo linear muitas vezes revela se os ganhos vêm de sinal real ou de sobreajuste/artefatos.

Quando uma linha de base linear pode ser surpreendentemente forte

Modelos lineares frequentemente se destacam quando:

  • O conjunto de dados é largo (muitos atributos), por exemplo, modelo saco de palavras (bag-of-words), expansões categóricas one-hot.
  • O sinal é aditivo (efeitos dos atributos se somam).
  • Você tem poucos dados e quer modelos de baixa variância.
  • Você precisa de probabilidades calibradas (calibrated probabilities) (a regressão logística costuma ser bem calibrada em comparação com algumas alternativas).

Interpretabilidade: o que os coeficientes significam (e o que não significam)

Interpretabilidade é um espectro. Modelos lineares/logísticos são mais interpretáveis do que redes profundas, mas interpretá-los corretamente exige cuidado.

Coeficientes na regressão linear

Para regressão linear:

  • Um coeficiente (w_j) representa a mudança em (\hat{y}) prevista para um aumento de uma unidade no atributo (x_j), mantendo os outros atributos constantes.

Essa cláusula de “mantendo os outros constantes” é crucial: se os atributos forem correlacionados, os coeficientes podem ser instáveis ou contraintuitivos (multicolinearidade (multicollinearity)).

Coeficientes na regressão logística (razões de chance)

Na regressão logística, (w_j) afeta o log-odds:

  • Um aumento de uma unidade em (x_j) muda o log-odds em (w_j).
  • A razão de chances (odds ratio) é (e^{w_j}).

Exemplo: se (w_j = 0.7), então (e^{0.7}\approx 2.01): as chances aproximadamente dobram para um aumento de uma unidade em (x_j) (novamente, mantendo os outros atributos constantes).

Escalonamento de atributos e interpretabilidade

Coeficientes dependem das unidades dos atributos:

  • Se você padroniza (standardize) os atributos (média zero, variância unitária), as magnitudes dos coeficientes ficam mais comparáveis.
  • Se você não faz isso, um atributo medido em “dólares” vs “milhares de dólares” muda a escala do coeficiente em 1000×.

O escalonamento também é importante para regularização (especialmente regularização L1 (L1 regularization) / regularização L2 (L2 regularization)); caso contrário, a penalidade trata atributos de forma desigual.

Correlação, confundimento e alegações causais

A regressão linear/logística são modelos associativos. Coeficientes não são inerentemente causais:

  • Variáveis omitidas podem enviesar coeficientes.
  • Colisores (colliders) e confundidores (confounders) podem inverter sinais.
  • Intervenções exigem suposições causais e desenho de estudo, não apenas regressão.

Regularização: controlando complexidade e melhorando generalização

Regularização adiciona uma penalidade para desestimular pesos excessivamente grandes. Ela é central para usar modelos lineares de forma eficaz, especialmente com muitos atributos ou preditores correlacionados.

Regressão ridge (regularização L2)

Ridge adiciona uma penalidade L2:

[ \min_w \frac{1}{n}\sum_{i=1}^n (y_i - w^\top x_i)^2 + \lambda \lVert w\rVert_2^2 ]

Efeitos:

  • Encolhe coeficientes suavemente em direção a zero (raramente exatamente zero).
  • Estabiliza soluções quando os atributos são correlacionados.
  • Frequentemente melhora o desempenho em teste ao reduzir a variância.

Visão probabilística: ridge corresponde a uma priori Gaussiana (Gaussian prior) sobre os pesos (estimação de máximo a posteriori (MAP estimation)), conectando-se a Modelos Bayesianos.

Lasso (regularização L1)

Lasso usa uma penalidade L1:

[ \min_w \frac{1}{n}\sum_{i=1}^n (y_i - w^\top x_i)^2 + \lambda \lVert w\rVert_1 ]

Efeitos:

  • Incentiva esparsidade (sparsity) (muitos coeficientes tornam-se exatamente zero).
  • Atua como seleção de atributos, útil em cenários de alta dimensionalidade.
  • Pode ser instável quando os preditores são altamente correlacionados (pode escolher um arbitrariamente).

Visão probabilística: lasso corresponde a uma priori de Laplace (Laplace prior) sobre os pesos.

Rede elástica (L1 + L2)

A rede elástica (elastic net) combina ambos:

[ \lambda\left(\alpha \lVert w\rVert_1 + (1-\alpha)\lVert w\rVert_2^2\right) ]

Ela frequentemente funciona bem quando há grupos de atributos correlacionados (comum em codificações one-hot, texto e genômica).

Regularização na regressão logística

Para regressão logística, você regulariza a perda logarítmica de modo similar:

[ \min_w \frac{1}{n}\sum_{i=1}^n \ell_{\text{log}}(y_i, \sigma(w^\top x_i)) + \lambda \Omega(w) ]

A maioria das implementações práticas usa regularização L2 por padrão.

Escolhendo a força da regularização

(\lambda) (ou, equivalentemente, (C = 1/\lambda) em muitas bibliotecas) é um hiperparâmetro (hyperparameter) escolhido via validação:

  • Validação cruzada k-fold (k-fold cross-validation) é comum.
  • Prefira selecionar com base na métrica que você valoriza (RMSE/MAE para regressão; perda logarítmica/AUC/acurácia para classificação).
  • Em cenários de alto risco, também verifique estabilidade e calibração (calibration).

Regularização não é apenas sobre desempenho — ela melhora a robustez, evita coeficientes extremos e pode reduzir sensibilidade a peculiaridades do conjunto de dados.

Otimização na prática

  • OLS pode ser resolvida em forma fechada (closed form), mas problemas em larga escala frequentemente usam solucionadores iterativos (iterative solvers).
  • Ridge tem uma forma fechada semelhante à OLS: ((X^\top X + \lambda I)^{-1}X^\top y).
  • Regressão logística não tem solução em forma fechada; ela usa otimização iterativa (por exemplo, LBFGS, métodos de Newton, SAG/SAGA, descida estocástica do gradiente (stochastic gradient descent, SGD)), conectando-se a Descida do Gradiente (Gradient Descent).

Como os objetivos são convexos, a otimização tipicamente é confiável quando comparada ao aprendizado profundo (deep learning) não convexo.

Exemplos práticos (scikit-learn)

Exemplo 1: Predição de preço de casas (regressão linear com regularização)

import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder, StandardScaler
from sklearn.pipeline import Pipeline
from sklearn.impute import SimpleImputer
from sklearn.linear_model import Ridge
from sklearn.metrics import mean_absolute_error

# X: pandas DataFrame of features, y: target (house price)
num_cols = ["sqft", "bedrooms", "bathrooms", "year_built"]
cat_cols = ["zipcode", "property_type"]

preprocess = ColumnTransformer(
    transformers=[
        ("num", Pipeline([
            ("impute", SimpleImputer(strategy="median")),
            ("scale", StandardScaler()),
        ]), num_cols),
        ("cat", Pipeline([
            ("impute", SimpleImputer(strategy="most_frequent")),
            ("onehot", OneHotEncoder(handle_unknown="ignore")),
        ]), cat_cols),
    ]
)

model = Pipeline([
    ("prep", preprocess),
    ("ridge", Ridge(alpha=10.0))  # alpha = λ (bigger => more shrinkage)
])

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
model.fit(X_train, y_train)
pred = model.predict(X_test)
print("MAE:", mean_absolute_error(y_test, pred))

Notas:

  • Codificação one-hot (one-hot encoding) pode criar muitos atributos; ridge lida bem com isso.
  • Padronização importa porque a penalidade do ridge depende das magnitudes dos coeficientes.

Exemplo 2: Predição de churn de clientes (regressão logística)

from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_auc_score, log_loss

clf = Pipeline([
    ("prep", preprocess),
    ("logreg", LogisticRegression(
        penalty="l2",
        C=1.0,            # inverse of regularization strength
        solver="lbfgs",
        max_iter=1000,
        class_weight="balanced"  # helpful for imbalance
    ))
])

clf.fit(X_train, y_train)
proba = clf.predict_proba(X_test)[:, 1]
print("AUC:", roc_auc_score(y_test, proba))
print("Log loss:", log_loss(y_test, proba))

Notas:

  • A regressão logística retorna probabilidades; avalie com perda logarítmica (log loss) e AUC, não apenas acurácia.
  • class_weight="balanced" é uma linha de base simples e frequentemente eficaz para classes desbalanceadas.

Avaliação e diagnósticos

Métricas de regressão

Escolhas comuns:

  • MAE: robusta a outliers, interpretável nas unidades do alvo.
  • RMSE: penaliza erros grandes mais do que MAE.
  • (R^2): proporção da variância explicada (pode ser enganosa se usada sozinha).

Análise de resíduos:

  • Plote resíduos vs. predições para detectar não linearidade ou heterocedasticidade.
  • Verifique outliers e pontos de alavancagem (leverage points); a regressão linear pode ser sensível a eles.

Métricas de classificação (regressão logística)

  • Perda logarítmica: corresponde diretamente ao objetivo de treinamento (boa escolha padrão).
  • AUC-ROC: qualidade de ranqueamento; menos sensível à escolha de limiar.
  • Precisão/Revocação (Precision/Recall): importante para problemas desbalanceados.
  • Calibração: confiabilidade das probabilidades previstas; a regressão logística frequentemente é razoável, mas ainda vale checar.

Se probabilidades são usadas para decisões, considere curvas de calibração (calibration curves) e, potencialmente, métodos de calibração pós-hoc (post-hoc calibration methods) (embora muitas vezes a regressão logística já seja competitiva).

Armadilhas comuns e como a regularização ajuda

Multicolinearidade (atributos correlacionados)

Sintomas:

  • Grande variância dos coeficientes, sinais instáveis.
  • Preditores equivalentes “brigam” entre si.

Correções:

  • Use ridge/rede elástica.
  • Considere Redução de Dimensionalidade (Dimensionality Reduction) (por exemplo, PCA) se a interpretabilidade for menos importante do que a estabilidade.

Separação perfeita (regressão logística)

Se um atributo (ou combinação) separa perfeitamente as classes, a regressão logística sem regularização pode levar os pesos ao infinito. A regularização L2 normalmente resolve isso e produz coeficientes finitos e estáveis.

Outliers e ruído de cauda pesada

OLS é sensível a outliers porque o erro quadrático cresce rapidamente. Opções:

  • Use regressão robusta (perda de Huber (Huber loss), RANSAC) quando apropriado.
  • Limpe/winsorize (winsorize) os dados cuidadosamente, ou modele o ruído de outra forma.

Vazamento de atributos

Modelos lineares podem parecer “bons demais” se existir vazamento (por exemplo, uma variável pós-evento incluída como atributo). Linhas de base são úteis aqui: se um modelo simples atinge desempenho implausivelmente alto, suspeite de vazamento.

Além do “linear”: engenharia de atributos e interações

A regressão linear/logística são lineares nos parâmetros, mas você pode modelar não linearidade transformando atributos:

  • Termos polinomiais: (x, x^2, x^3)
  • Splines (splines)/discretização (binning) para variáveis contínuas
  • Termos de interação: (x_1 \cdot x_2)
  • Transformações logarítmicas (log transforms) para variáveis assimétricas

Isso pode fechar grande parte da diferença para modelos mais complexos mantendo a interpretabilidade (embora interações possam complicar explicações).

Quando usar regressão linear/logística vs. outros modelos

Use regressão linear/logística quando você quer:

  • Uma linha de base forte e rápida
  • Interpretabilidade e auditabilidade
  • Robustez com regularização em dados esparsos de alta dimensionalidade
  • Otimização convexa bem-comportada

Considere alternativas quando:

Principais conclusões

  • Regressão linear prevê resultados reais; regressão logística prevê probabilidades para classificação via a função sigmoide (sigmoid)/softmax.
  • Ambas são problemas convexos, o que as torna linhas de base estáveis, rápidas e confiáveis.
  • Interpretabilidade vem dos coeficientes, mas a interpretação correta exige atenção a escalonamento, correlação e ressalvas não causais.
  • Regularização (L2/L1/rede elástica) é essencial na prática moderna de ML: melhora generalização, estabiliza coeficientes e pode selecionar atributos.
  • Em muitos fluxos de trabalho de produção, um modelo linear/logístico bem regularizado não é apenas uma linha de base — pode ser o modelo final.