Właściwy trening modelu

Nadzorowane uczenie maszynowe w R: regresja

Nina Zumel and John Mount

Win-Vector, LLC

Model może działać znacznie lepiej na danych treningowych niż na nowych danych.

  • Treningowe $R^2$: 0,9; Testowe $R^2$: 0,15 -- Przeuczenie
Nadzorowane uczenie maszynowe w R: regresja

Podział na zbiór testowy i treningowy

Zalecana metoda, gdy danych jest wystarczająco dużo

Nadzorowane uczenie maszynowe w R: regresja

Przykład: modelowanie bezrobocia kobiet

  • Trening na 66 wierszach, test na 30 wierszach
Nadzorowane uczenie maszynowe w R: regresja

Wydajność modelu: trening vs. test

  • Trening: RMSE 0,71, $R^2$ 0,8
  • Test: RMSE 0,93, $R^2$ 0,75
Nadzorowane uczenie maszynowe w R: regresja

Walidacja krzyżowa

Preferowana, gdy dane są zbyt małe, by wydzielić zbiór testowy

Nadzorowane uczenie maszynowe w R: regresja

Walidacja krzyżowa

Nadzorowane uczenie maszynowe w R: regresja

Walidacja krzyżowa

Nadzorowane uczenie maszynowe w R: regresja

Walidacja krzyżowa

Nadzorowane uczenie maszynowe w R: regresja

Tworzenie planu walidacji krzyżowej

library(vtreat)
splitPlan <- kWayCrossValidation(nRows, nSplits, NULL, NULL)
  • nRows: liczba wierszy w danych treningowych
  • nSplits: liczba foldów (partycji) w walidacji krzyżowej
    • np. nfolds = 3 dla 3-krotnej walidacji krzyżowej
  • pozostałe 2 argumenty nie są tu potrzebne
Nadzorowane uczenie maszynowe w R: regresja

Tworzenie planu walidacji krzyżowej

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

Pierwszy fold (A i B do treningu, C do testu)

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

Trenuj na A i B, testuj na C itd...

split <- splitPlan[[1]]
model <- lm(fmla, data = df[split$train,])
df$pred.cv[split$app] <- predict(model, newdata = df[split$app,])
Nadzorowane uczenie maszynowe w R: regresja

Model finalny

Nadzorowane uczenie maszynowe w R: regresja

Przykład: model bezrobocia

Typ miary RMSE $R^2$
trening 0.7082675 0.8029275
test 0.9349416 0.7451896
walidacja krzyżowa 0.8175714 0.7635331
Nadzorowane uczenie maszynowe w R: regresja

Czas na ćwiczenia!

Nadzorowane uczenie maszynowe w R: regresja

Preparing Video For Download...