【发布时间】:2014-01-27 00:15:21
【问题描述】:
我有一个包含 506 行的数据集,我在其上执行 Leave-one-out 交叉验证,一旦我得到均方误差,我正在计算我发现的均方误差的平均值。每次我运行它都会改变。这是预期的吗?如果是这样,有人可以解释为什么每次我运行它都会改变吗?
要留下一份简历,我先洗牌,df是数据框
df <-df[sample.int(nrow(df)),]
然后,我将数据帧拆分为 506 个数据帧并将其发送到 lm() 并获取每个数据帧(在本例中为每一行)的 MSE
fit <- lm(train[,lastcolumn] ~.,data = train)
pred <- predict(fit,test)
pred <- mean((pred - test[,lastcolumn])^2)
然后我对我得到的所有 MSE 取平均值。
每次我运行所有这些时,我都会得到不同的意思。这是预期的吗?
【问题讨论】:
-
请提供一个可重现的例子。
-
@MatthewLundberg,希望这篇编辑对您有所帮助
-
可重现的手段提供样本数据。如果这样更方便,您还可以使用众多内置数据集之一(请参阅
?data)。
标签: r linear-regression lm cross-validation