Treinando um Modelo da Maneira Certa

Aprendizado Supervisionado em R: Regressão

Nina Zumel and John Mount

Win-Vector, LLC

Modelos podem ir muito melhor no treino do que em dados futuros.

  • $R^2$ treino: 0,9; $R^2$ teste: 0,15 — Overfit
Aprendizado Supervisionado em R: Regressão

Divisão Treino/Teste

Método recomendado quando há muitos dados

Aprendizado Supervisionado em R: Regressão

Exemplo: Modelar Desemprego Feminino

  • Treine em 66 linhas e teste em 30
Aprendizado Supervisionado em R: Regressão

Desempenho do Modelo: Treino vs. Teste

  • Treino: RMSE 0,71, $R^2$ 0,8
  • Teste: RMSE 0,93, $R^2$ 0,75
Aprendizado Supervisionado em R: Regressão

Validação Cruzada

Preferível quando os dados não são grandes o suficiente para separar um conjunto de teste

Aprendizado Supervisionado em R: Regressão

Validação Cruzada

Aprendizado Supervisionado em R: Regressão

Validação Cruzada

Aprendizado Supervisionado em R: Regressão

Validação Cruzada

Aprendizado Supervisionado em R: Regressão

Criar um plano de validação cruzada

library(vtreat)
splitPlan <- kWayCrossValidation(nRows, nSplits, NULL, NULL)
  • nRows: número de linhas nos dados de treino
  • nSplits: número de folds (partições) na validação cruzada
    • ex.: nfolds = 3 para validação cruzada 3-way
  • os 2 argumentos restantes não são necessários aqui
Aprendizado Supervisionado em R: Regressão

Criar um plano de validação cruzada

library(vtreat)
splitPlan <- kWayCrossValidation(10, 3, NULL, NULL)

Primeiro fold (A e B para treinar, C para testar)

splitPlan[[1]]
$train
1  2  4  5  7  9 10
$app
3 6 8

Treine em A e B, teste em C, etc.

split <- splitPlan[[1]]
model <- lm(fmla, data = df[split$train,])
df$pred.cv[split$app] <- predict(model, newdata = df[split$app,])
Aprendizado Supervisionado em R: Regressão

Modelo Final

Aprendizado Supervisionado em R: Regressão

Exemplo: Modelo de Desemprego

Tipo de medida RMSE $R^2$
treino 0,7082675 0,8029275
teste 0,9349416 0,7451896
validação cruzada 0,8175714 0,7635331
Aprendizado Supervisionado em R: Regressão

Vamos praticar!

Aprendizado Supervisionado em R: Regressão

Preparing Video For Download...