Nesta aula
Um modelo precisa de comparação.
Dizer que um modelo tem "R² de 0,85" não quer dizer quase nada. O número só ganha sentido quando você compara com um chute simples e mede o erro na unidade do que quer prever: reais, dias, quilos.
- Medir uma linha de base e comparar o modelo com ela
- Ler as métricas de erro sem se enganar
- Escolher parâmetros sem olhar o teste
O que o modelo aprende
O modelo recebe duas coisas. A tabela de entradas, chamada X: cada linha é um caso, como um imóvel, e cada coluna é uma característica, como a área. E o alvo, chamado y: o valor que você quer prever, como o preço. O método fit faz o modelo aprender a relação entre os dois. Depois, predict prevê casos novos.
Há dois tipos de número. Os parâmetros o modelo aprende sozinho. Os hiperparâmetros você escolhe antes, como a profundidade de uma árvore. Numa receita de bolo, as proporções são aprendidas e a temperatura do forno é escolha sua.
Para este curso, use o conjunto California Housing, com preços de distritos da Califórnia. O conjunto antigo de Boston saiu do scikit-learn por um problema ético, explicado abaixo.
Linha de base: o zero da régua
Antes de qualquer modelo, meça o chute mais simples: prever sempre a média dos preços do treino. O DummyRegressor faz isso.
from sklearn.dummy import DummyRegressor
base = DummyRegressor(strategy="mean").fit(X_treino, y_treino)
print(base.predict(X_teste)[:5]) # sempre a média
Se o seu modelo não supera esse chute com folga, ele não aprendeu nada útil.
Métricas na unidade do alvo
Um número solto não diz nada. Traduza o erro para a unidade do problema.
| Métrica | O que mede | Cuidado |
|---|---|---|
| R² | Quanto da variação o modelo explica. 0 é chutar a média | Nunca sozinho |
| MAE | Erro médio, na unidade do alvo | Leitura direta: erra, em média, tanto |
| RMSE | Erro que pune mais os erros grandes | Sempre igual ou maior que o MAE |
Coisa de profissional
R² pode ser negativo, e sem limite. Um modelo que sempre prevê a média tem R² igual a zero. Se ele erra mais que isso, o R² fica abaixo de zero. Não é bug: é o aviso de que o modelo é pior que o chute mais simples. Por isso quem trabalha com modelos nunca mostra um R² sozinho. Mostra o erro na unidade do alvo e a linha de base ao lado, para a pessoa que lê saber se o número é bom ou só parece bom.
Famílias de modelos
A regressão linear desenha uma reta e soma o efeito de cada coluna. A árvore faz perguntas em sequência, como "a área é maior que tal valor?", até chegar a um preço. É fácil de explicar, mas costuma decorar o treino.
A floresta treina muitas árvores diferentes e tira a média, e erra menos que uma árvore sozinha. O gradient boosting treina árvores pequenas em sequência, cada uma corrigindo o erro da anterior. Escolha por validação, não pela moda.
Validação sem olhar o teste
Nunca confie numa nota tirada de uma única divisão. A validação cruzada separa o treino em partes, treina em todas menos uma e testa na que sobrou, repetindo até usar todas. A média das notas mostra se a diferença entre dois modelos é real ou sorte.
A escolha dos hiperparâmetros acontece dentro dessa validação. O teste fica guardado e é usado uma única vez, com o modelo já escolhido. Se você escolher olhando o teste, a nota dele deixa de ser honesta.
Cuidado
Pickle e joblib podem executar código ao carregar. Só abra um modelo de fonte confiável. Para só fazer previsões, formatos como o ONNX são mais seguros.
Prática · 5 min
- Calcule a linha de base com DummyRegressor e anote o erro médio dela no teste.
- Treine uma regressão linear e uma árvore pequena. Anote o MAE de cada uma na unidade do alvo.
- Escreva uma frase para cada modelo: quanto ele melhora sobre a linha de base?
Resumo
- O modelo aprende a relação entre X e y. Hiperparâmetros são escolha sua.
- Meça a linha de base antes de qualquer modelo.
- Reporte o erro na unidade do alvo. O R² pode ser negativo.
- Escolha na validação do treino e abra o teste uma única vez.
Fontes
Lidas em 30 de outubro de 2026.
- scikit-learn. r2_score: o R² pode ser negativo; um modelo constante na média tem R² 0.
- scikit-learn 1.0. load_boston: depreciação do conjunto de Boston.
- scikit-learn. DummyRegressor: linha de base simples.
- scikit-learn. Model persistence: segurança ao carregar modelos.
Quiz da aula
Três situações para aplicar o que viu.
Isaque Victor cursos gratuitos