Ein Modell richtig trainieren

Überwachtes Lernen in R: Regression

Nina Zumel and John Mount

Win-Vector, LLC

Modelle sind im Training oft viel besser als auf zukünftigen Daten.

  • Training-$R^2$: 0,9; Test-$R^2$: 0,15 – Overfitting
Überwachtes Lernen in R: Regression

Train/Test-Split

Empfohlene Methode, wenn viele Daten vorliegen

Überwachtes Lernen in R: Regression

Beispiel: Modell zur weiblichen Arbeitslosigkeit

  • Trainiere auf 66 Zeilen, teste auf 30 Zeilen
Überwachtes Lernen in R: Regression

Modellgüte: Train vs. Test

  • Training: RMSE 0,71, $R^2$ 0,8
  • Test: RMSE 0,93, $R^2$ 0,75
Überwachtes Lernen in R: Regression

Cross-Validation

Bevorzugt, wenn die Daten nicht groß genug für ein Testset sind

Überwachtes Lernen in R: Regression

Cross-Validation

Überwachtes Lernen in R: Regression

Cross-Validation

Überwachtes Lernen in R: Regression

Cross-Validation

Überwachtes Lernen in R: Regression

Einen Cross-Validation-Plan erstellen

library(vtreat)
splitPlan <- kWayCrossValidation(nRows, nSplits, NULL, NULL)
  • nRows: Anzahl der Zeilen in den Trainingsdaten
  • nSplits: Anzahl der Folds (Partitionen) in der Cross-Validation
    • z. B. nfolds = 3 für 3-fache Cross-Validation
  • die übrigen 2 Argumente werden hier nicht benötigt
Überwachtes Lernen in R: Regression

Einen Cross-Validation-Plan erstellen

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

Erster Fold (A und B zum Trainieren, C zum Testen)

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

Trainiere auf A und B, teste auf C, usw.

split <- splitPlan[[1]]
model <- lm(fmla, data = df[split$train,])
df$pred.cv[split$app] <- predict(model, newdata = df[split$app,])
Überwachtes Lernen in R: Regression

Finales Modell

Überwachtes Lernen in R: Regression

Beispiel: Arbeitslosigkeitsmodell

Messart RMSE $R^2$
train 0.7082675 0.8029275
test 0.9349416 0.7451896
cross-validation 0.8175714 0.7635331
Überwachtes Lernen in R: Regression

Lass uns üben!

Überwachtes Lernen in R: Regression

Preparing Video For Download...