含义:在交叉验证期间RMSE的改进,尽管不是在测试集上?

含义:在交叉验证期间RMSE的改进,尽管不是在测试集上?,r,neural-network,R,Neural Network,在下面的代码中,我对数据集中的前20000条记录进行交叉验证来训练NN。该数据集包含8个预测值 首先,我将数据分为两部分: 前20000行(列车组) 和最后4003行(样本测试集之外) 我跑了2次: 运行1)带有3个预测值的运行 运行2)使用所有8个预测器运行(参见下面的代码) 基于列车组20000行内的交叉验证,RMSE(用于最佳参数设置)从2.30(运行1)提高到2.11(运行2) 虽然当我在样本外测试集中的4003行上测试这两个模型时,RMSE只将Negleble从2.64(运行1)提高到

在下面的代码中,我对数据集中的前20000条记录进行交叉验证来训练NN。该数据集包含8个预测值

首先,我将数据分为两部分: 前20000行(列车组) 和最后4003行(样本测试集之外)

我跑了2次: 运行1)带有3个预测值的运行 运行2)使用所有8个预测器运行(参见下面的代码)

基于列车组20000行内的交叉验证,RMSE(用于最佳参数设置)从2.30(运行1)提高到2.11(运行2)

虽然当我在样本外测试集中的4003行上测试这两个模型时,RMSE只将Negleble从2.64(运行1)提高到2.63(运行2)

从结果中的这些矛盾可以得出什么结论

谢谢

### R code from Applied Predictive Modeling (2013) by Kuhn and Johnson.
### Chapter 7: Non-Linear Regression Models
### Required packages: AppliedPredictiveModeling, caret, doMC (optional), 
### earth, kernlab, lattice, nnet
################################################################################

library(caret)    
### Load the data

mydata <- read.csv(file="data.csv", header=TRUE, sep=",")

validatiex <- mydata[20001:24003,c(1:8)]
validatiey <- mydata[20001:24003,9]

mydata <-  mydata[1:20000,]

x <- mydata[,c(1:8)]
y <- mydata[,9]

parti <- createDataPartition(y, times = 1, p=0.8, list = FALSE)    
x_train <- x[parti,]
x_test <- x[-parti,]
y_train <- y[parti]
y_test <- y[-parti]


set.seed(100)
indx <- createFolds(y_train, returnTrain = TRUE)
ctrl <- trainControl(method = "cv", index = indx)

## train neural net:

nnetGrid <- expand.grid(decay = c(.1), 
                        size = c(5, 15, 30), 
                        bag = FALSE)

set.seed(100)
nnetTune <- train(x = x_train, y = y_train,
                  method = "avNNet",
                  tuneGrid = nnetGrid,
                  trControl = ctrl,
                  preProc = c("center", "scale"),
                  linout = TRUE,
                  trace = FALSE,
                  MaxNWts = 30 * (ncol(x_train) + 1) + 30 + 1,
                  maxit = 1000,
                  repeats = 25,
                  allowParallel = FALSE)
nnetTune
plot(nnetTune)



predictions <- predict(nnetTune, validatiex, type="raw")
mse <- mean((validatiey - predictions)^2)
mse <- sqrt(mse)
print (mse)
Kuhn和Johnson的《应用预测建模》(2013)R代码。 ###第7章:非线性回归模型 ###所需软件包:AppliedPredictiveModeling、插入符号、doMC(可选), ###地球、内核实验室、晶格、nnet ################################################################################ 图书馆(插入符号) ###加载数据
mydata我将首先尝试运行重复的CV
trainControl(method=“CV”,number=3,repeat=5)
,查看CV结果是否与验证结果更加一致。谢谢。它说“repeats”对这种重采样方法没有意义。只是增加数字?对不起,我错了,方法应该是“repeatedcv”。@错误使用车组上的RMSE几乎保持不变:2.29(是2.30)和2.11(2.11)。验证结果现在是:2.65(2.64)和2.59(2.63)。您是否希望验证结果发生变化?事实上,尽管训练结果的改善比验证结果的改善更大,但矛盾现在已经小了。