【发布时间】:2020-09-16 03:00:28
【问题描述】:
我在使用交叉验证检查预测能力时遇到了一些直观的问题,我认为我没有 100% 获得算法。 我想通过例子来讲述我的直觉问题。设 k=5(折叠数)和
library(caret)
x=runif(100)
z=rexp(100)
y=rnorm(100)
Q=data.frame(x,z,y)
train.control <- trainControl(method = "cv", number = 5)
train(y~x+z,method="lm",data=Q,trControl=train.control)
在输出中我得到了:
100 samples
2 predictor
No pre-processing
Resampling: Cross-Validated (5 fold)
Summary of sample sizes: 80, 80, 80, 80, 80
Resampling results:
RMSE Rsquared MAE
1.032508 0.1272826 0.8213676
Tuning parameter 'intercept' was held constant at a value of TRUE
我的问题是:
(1) 为什么我的样本被划分为长度为 80,80,80,80,80 而不是 20,20,20,20,20 的子样本? 长度 y,x 和 z 是 100 而不是 400。
(2) 算法是仅从 x 和 z 绘制还是从 x 和 y 和 z 绘制?
(3) 算法在随机化后做了什么?我在互联网上找不到任何相关信息。我只看到他计算 RMSE 和 MAE。但例如 MAE 计算 y 和 y.hat 之间差异的绝对值。我相信 h.hat 是模型 y~x+z 预测的值(例如,如果我绘制 x=0.05 和 z=0.16,则 y.hat=0.21)。但我不知道那些抽奖号码的 y 是什么,我无法想象选择正确的可能性。
拜托,你能回答我的直觉问题,还是给我一些好的页面来阅读它?在我读过的所有页面中,我都找不到解决问题的方法。提前谢谢你。
【问题讨论】:
标签: r machine-learning linear-regression cross-validation