Machine learning do zero · Aula 1.5 · 6 de 33 aulas prontas · 10 min
Regressão linear: ajustando uma reta
Em resumo
A regressão linear traça a reta que menos erra os dados. Com dados de diabetes, o erro quadrático médio decide qual é a melhor reta.
Aquecimento Duas perguntas de aulas anteriores. Um minuto, e a aula nunca fica bloqueada.
O peso corporal diz alguma coisa sobre a velocidade com que uma doença piora? Médicos têm muitos palpites desse tipo. O aprendizado de máquina permite transformar um palpite num número: traçar a melhor reta pelos dados e ler o quanto ela é inclinada. A única pergunta é o que “melhor” significa — e a resposta a essa pergunta é a semente de tudo o que vem a seguir neste curso.
Escolha uma resposta e o seu grau de certeza.
Responda para liberar o experimento.
Experimento interativo
Este experimento interativo funciona em um navegador com JavaScript ativado. O texto ao redor descreve o que ele mostra.
Ver a resposta
Resposta certa: Cerca de 34%
A melhor reta tem R² = 0,34 (erro quadrático médio de 3890, contra 5930 de uma reta plana na média): o IMC explica mais ou menos um terço da variação, e os outros 66% dependem de outra coisa.
Experimente
- Mova o controle da inclinação e veja a reta girar e o MSE mudar. Depois mova o do intercepto. Tente baixar o MSE o máximo possível à mão.
- Clique em Melhor ajuste e compare a reta de mínimos quadrados com a sua. Quão perto você chegou?
- Coloque a inclinação em zero, para a reta ficar plana, e mova só o intercepto até o MSE ficar o menor possível. Você acabou de encontrar a progressão média: sem nenhum atributo, o melhor palpite para todos é a média.
- Compare o MSE dessa reta plana com o do melhor ajuste. A diferença é o quanto vale conhecer o IMC.
A ideia em poucas palavras
Vamos ver agora, em palavras simples, o que você acabou de manipular.
Na lição 1, o modelo respondia “sim” ou “não”. Agora ele responde com um número, e isso se chama regressão. O modelo de regressão mais simples é uma reta:
previsão = inclinação × atributo + intercepto
A inclinação diz quanto a previsão muda quando o atributo aumenta uma unidade. O intercepto sobe ou desce a reta inteira. Aprender significa encontrar os dois números que fazem a reta passar o mais perto possível dos pontos.
Imagine um vendedor de carros usados que define preços pela idade do carro. A regra prática dele é uma reta: parte do preço de um carro zero (o intercepto) e desconta um valor fixo por ano de uso (a inclinação). Nenhum carro de verdade é vendido exatamente por esse preço, mas a reta captura a tendência e é fácil de explicar.
Nesta lição usamos dados de um estudo médico clássico com 442 pacientes com diabetes. Para cada um, sabemos o índice de massa corporal (IMC) e uma medida de quanto a doença progrediu um ano depois da primeira consulta. Assim, cada paciente é um par de números, ou seja, um ponto: o IMC na horizontal e a progressão na vertical.
Por que funciona
Para cada paciente, a reta faz uma previsão, e a diferença entre o valor real e a previsão se chama resíduo — a distância vertical do ponto até a reta. Para dar nota a uma reta, precisamos transformar centenas de resíduos num único número. A escolha padrão é o erro quadrático médio:
MSE = (1/n) · Σ (yᵢ − ŷᵢ)²
em que yᵢ é o valor real do paciente i, ŷᵢ é a previsão da reta e n é o número de pacientes. Elevar ao quadrado faz dois serviços. Torna todo erro positivo, para que erros acima e abaixo da reta não se anulem. E pune erros grandes muito mais que os pequenos: um ponto duas vezes mais longe da reta custa quatro vezes mais. Uma reta que erra um pouco para todo mundo costuma vencer uma que é perfeita para a maioria e péssima para alguns.
A reta com o menor MSE é chamada de ajuste por mínimos quadrados. Para uma reta, ela nem precisa ser procurada: uma fórmula curta, conhecida desde o começo do século XIX, dá a inclinação e o intercepto ótimos exatos. Repare no que isso significa. Aprender é a mesma receita de antes — uma família de regras (todas as retas possíveis), uma pontuação (o MSE) e a regra com a melhor pontuação —, só que agora a família é infinita e a pontuação é contínua.
Mais uma coisa para notar: mesmo a melhor reta deixa resíduos grandes nesses dados. O IMC tem relação com a progressão, mas está longe de explicar tudo. Um modelo só pode ser tão bom quanto a informação contida nos seus atributos.
Erro comum
Uma reta ajustada não é uma lei da natureza. Esquecer isso leva a dois erros clássicos. O primeiro é ler a inclinação como causa: nestes dados, pacientes com IMC mais alto progridem mais rápido em média, mas a reta sozinha não diz se o peso causa a progressão ou se as duas coisas vêm de outro fator. O segundo é a extrapolação — usar a reta muito fora da faixa dos dados. Os pacientes deste estudo têm IMC dentro de uma faixa limitada; a reta não diz nada confiável sobre valores que nunca viu.
Encontrar a melhor reta por fórmula é um luxo que a maioria dos modelos não tem. Na próxima lição encontramos a mesma reta de outro jeito — dando pequenos passos morro abaixo —, que é como as redes neurais aprendem.
Pegue o erro da IA
Foi assim que um chatbot respondeu. Uma frase está errada. Qual?
Pergunta: Ajustei uma reta da progressão da doença em função do IMC de 442 pacientes com diabetes e obtive R² = 0,34. O que isso me diz?
Mostrar a frase errada
A frase errada: Na prática, significa que a reta prevê corretamente a progressão de cerca de 34% dos pacientes e erra o resto.
R² não é uma fração de pacientes: R² = 0,34 significa que o IMC explica mais ou menos um terço da variação da progressão (erro quadrático médio de 3890, contra 5930 da reta plana), e os outros 66% dependem de outra coisa. A regressão prevê um número, e quase todo paciente fica com algum resíduo.
Quiz
Três perguntas para você se testar. Escolha uma resposta ou abra a resposta embaixo de cada pergunta. No teclado: as setas escolhem, Enter ou Espaço confirma.
Pontos-chave
- A regressão prevê um número; uma reta é o modelo de regressão mais simples.
- O erro quadrático médio avalia uma reta pela média dos resíduos ao quadrado, então erros grandes pesam mais.
- A reta de mínimos quadrados é a de menor MSE e tem uma fórmula exata.
- Sem nenhum atributo útil, a melhor previsão constante é a média.
- Uma inclinação é uma associação dentro da faixa dos dados, não uma causa nem uma licença para extrapolar.
Mais a fundo: fórmula, código, prática
A matemática
Para uma variável x a reta é ŷ = w·x + b. Os mínimos quadrados escolhem os w e b que minimizam MSE(w, b) = (1/n) · Σ (yᵢ − w·xᵢ − b)². Igualar a zero as duas derivadas parciais dá a forma fechada:
w = Σ (xᵢ − x̄)(yᵢ − ȳ) / Σ (xᵢ − x̄)², a covariância dexeydividida pela variância dex;b = ȳ − w·x̄, de modo que a reta sempre passa pelo ponto das médias(x̄, ȳ).
Com a inclinação fixada em 0, o MSE é mínimo em b = ȳ, e esse mínimo é igual à variância de y. Por isso R² = 1 − MSE(line) / MSE(mean) mede que parte da variância a variável explica. Para uma reta com uma variável, o R² é o quadrado da correlação de Pearson entre x e y.
No código (Python)
Os mesmos 442 pacientes do lab, com o IMC em suas unidades originais (scaled=False):
from sklearn.datasets import load_diabetes
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
X, y = load_diabetes(return_X_y=True, as_frame=True, scaled=False)
bmi = X[["bmi"]] # uma variável, mantida como tabela (o sklearn espera entrada 2-D)
model = LinearRegression().fit(bmi, y)
pred = model.predict(bmi)
print(f"slope {model.coef_[0]:.2f}, intercept {model.intercept_:.1f}")
print(f"MSE of the line: {mean_squared_error(y, pred):.0f}")
print(f"MSE of the mean: {mean_squared_error(y, [y.mean()] * len(y)):.0f}")
print(f"R2: {r2_score(y, pred):.2f}")
Saída
slope 10.23, intercept -117.8
MSE of the line: 3890
MSE of the mean: 5930
R2: 0.34
Cada ponto de IMC soma cerca de 10 à progressão prevista. O intercepto de −118 é apenas uma extrapolação para IMC 0, bem fora dos dados (IMC 18–42), então sozinho não significa nada.
Baixar o notebook (.ipynb). Abra no Jupyter ou envie para o Google Colab; ele baixa sozinho os dados que faltarem.
Para quem pratica
- Pontuações calculadas com os dados de treino são otimistas. Aqui isso é inofensivo (dois parâmetros, 442 pontos), mas em geral informe o MSE e o R² em um conjunto de teste (lição 2).
- Verifique os resíduos, não só o R². Faça o gráfico deles contra a previsão: uma curva ou um formato de funil significa que a reta, ou o ruído constante, é uma suposição errada.
- O MSE está em unidades ao quadrado da variável alvo (aqui, progressão²). Sua raiz quadrada (RMSE, cerca de 62 aqui) é mais fácil de explicar para qualquer outra pessoa.
- Um único outlier com resíduo grande pode puxar bastante uma reta de mínimos quadrados. Quando alguns pontos são incomuns, olhe-os primeiro e só depois considere uma perda robusta como a de Huber.
- Uma inclinação só é comparável entre variáveis quando elas têm a mesma escala. Padronize as variáveis antes de ler os coeficientes como “importância”, e mesmo assim é associação, não causa.
Isto foi útil?
Obrigado! Isso nos ajuda a melhorar.
Vá mais fundo no Atlas
Verbetes da enciclopédia sobre as ideias desta aula: