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:
- Relações são altamente não lineares e engenharia de atributos é insuficiente (frequentemente onde Árvores de Decisão e Conjuntos se destacam em dados tabulares)
- Você precisa de estrutura de similaridade complexa ou margens (Máquinas de Vetores de Suporte podem ser competitivas, especialmente com kernels em cenários menores)
- Você precisa de modelagem de incerteza além de estimativas pontuais (veja Processos Gaussianos (Gaussian Processes) ou Modelos Bayesianos)
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.