【发布时间】:2018-03-12 15:45:13
【问题描述】:
我一直在尝试在 R 中对我创建的数据集执行 k 折交叉验证。该数据的链接如下:
https://drive.google.com/open?id=0B6vqHScIRbB-S0ZYZW1Ga0VMMjA
我使用了以下代码:
library(DAAG)
six = read.csv("six.csv") #opening file
fit <- lm(Height ~ GLCM.135 + Blue + NIR, data=six) #applying a regression model
summary(fit) # show results
CVlm(data =six, m=10, form.lm = formula(Height ~ GLCM.135 + Blue + NIR )) # 10 fold cross validation
这会产生以下输出(摘要版本)
Sum of squares = 7.37 Mean square = 1.47 n = 5
Overall (Sum over all 5 folds)
ms
3.75
Warning message:
In CVlm(data = six, m = 10, form.lm = formula(Height ~ GLCM.135 + :
As there is >1 explanatory variable, cross-validation
predicted values for a fold are not a linear function
of corresponding overall predicted values. Lines that
are shown for the different folds are approximate
我不明白 ms 值指的是什么,因为我在互联网上看到了不同的解释。据我了解,K-fold 交叉验证会为指定模型产生总体 RMSE 值(这是我试图为我的研究获得的值)。
当我在代码中指定了 10 折交叉验证时,我也不明白为什么生成的结果会产生 Overall(所有 5 折的总和)。
如果有人可以提供帮助,将不胜感激。
【问题讨论】:
标签: r validation regression cross-validation