优化nnet中的参数

时间:2018-04-15 19:22:46

标签: r

我使用以下R代码来训练我的数据

    >mygrid = expand.grid(.decay=seq(0.01,0.1,0.01), .size=c(10:20))
    >set.seed(25000)
    >nnetfit = train(logprice ~ ., 
                     data=traindata, 
                     method="nnet",
                     maxit=5000, #max number of iteration
                     linout=T, #F would be logistic output
                     tuneGrid=mygrid,
                     trace=F)

结果如下:

> print(nnetfit)

Neural Network 

10639 samples
   12 predictor

No pre-processing
Resampling: Bootstrapped (25 reps) 
Summary of sample sizes: 10639, 10639, 10639, 10639, 10639, 10639, ... 
Resampling results across tuning parameters:

  decay  size  RMSE       Rsquared   MAE      
  0.01   10    0.3026250  0.6158591  0.2379521
...

我的问题是,

是什么
Resampling: Bootstrapped (25 reps) 
Summary of sample sizes: 10639, 10639, 10639, 10639, 10639, 10639, ... 
这两个原料是什么意思?我认为衰变和大小的组合将是10 * 10 = 100 所以“25个代表”令人困惑。

1 个答案:

答案 0 :(得分:0)

为了对RMSERsquared进行更实际的估算,train函数(默认情况下)使用25次重复的引导程序重采样方法。

对于每次重复,您的观察结果随机重新采样并带有替换(因此您可以重复观察,这样就可以了)。 nnet仅针对您的数据子集开发。无论在每次重新采样中保留的观察结果都用于确定nnet预测logprice的效果。您看到的RMSERsquared是所有25个样本的平均值。

要更改引导样本的数量,您必须使用trainControl包中的carethttps://topepo.github.io/caret/model-training-and-tuning.html#control),例如用50个样本进行bootstrap重采样:

tc <- trainControl(method="boot",number=50)
nnetfit = train(logprice ~ ., 
    ... all your other hyperparamters...
    trControl=tc)