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)
第1フォールド(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:回帰