R 中的监督学习:回归
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 中的监督学习:回归