我有一个包含 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 的平均值。
每次我运行所有这些时,我都会得到不同的意思。这是预期的吗?