R로 하는 Supervised Learning: 회귀
Nina Zumel and John Mount
Win-Vector, LLC


데이터가 충분할 때 권장되는 방법



테스트 세트를 분리하기 어려울 만큼 데이터가 적을 때 적합



library(vtreat)
splitPlan <- kWayCrossValidation(nRows, nSplits, NULL, NULL)
nRows: 학습 데이터의 행 수nSplits: 교차 검증의 폴드(분할) 수library(vtreat)
splitPlan <- kWayCrossValidation(10, 3, NULL, NULL)
첫 번째 폴드 (A, B로 학습, C로 테스트)
splitPlan[[1]]
$train
1 2 4 5 7 9 10
$app
3 6 8
A, B로 학습, C로 테스트, 이후 반복...
split <- splitPlan[[1]]
model <- lm(fmla, data = df[split$train,])
df$pred.cv[split$app] <- predict(model, newdata = df[split$app,])

| 측정 유형 | RMSE | $R^2$ |
|---|---|---|
| 학습 | 0.7082675 | 0.8029275 |
| 테스트 | 0.9349416 | 0.7451896 |
| 교차 검증 | 0.8175714 | 0.7635331 |
R로 하는 Supervised Learning: 회귀