Является ли Усредненная нейронная сеть (avNNet) средним значением для всех итераций? - PullRequest
0 голосов
/ 07 сентября 2018

Я установил Усредненную нейронную сеть в R с помощью Caret. Смотрите код ниже. Означает ли термин «Усредненный», что среднее основано на результатах 1000 нейронных сетей? (поскольку в этом случае 1000 итераций)

Спасибо.

library(AppliedPredictiveModeling)
data(solubility)

### Create a control funciton that will be used across models. We
### create the fold assignments explictily instead of relying on the
### random number seed being set to identical values.

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

################################################################################
### Section 7.1 Neural Networks

### Optional: parallel processing can be used via the 'do' packages,
### such as doMC, doMPI etc. We used doMC (not on Windows) to speed
### up the computations.

### WARNING: Be aware of how much memory is needed to parallel
### process. It can very quickly overwhelm the availible hardware. We
### estimate the memory usuage (VSIZE = total memory size) to be 
### 2677M/core.

library(doMC)
registerDoMC(10)


library(caret)

nnetGrid <- expand.grid(decay = c(0, 0.01, .1), 
                        size = c(1, 3, 5, 7, 9, 11, 13), 
                        bag = FALSE)

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

plot(nnetTune)

testResults <- data.frame(obs = solTestY,
                          NNet = predict(nnetTune, solTestXtrans))

################################################################################

Смотри также:

https://scientistcafe.com/post/nnet.html

1 Ответ

0 голосов
/ 08 сентября 2018

avNNet - это модель, в которой одна и та же модель нейронной сети подгоняется с использованием различных случайных чисел. Все полученные модели используются для прогнозирования. Для регрессии выходные данные каждой сети усредняются. Для классификации результаты модели сначала усредняются, а затем переводятся в прогнозируемые классы. Источник .

Количество подгонки моделей контролируется аргументом repeats, который передается модели в caret через ...

repeats - the number of neural networks with different random number seeds. По умолчанию установлено значение 5. Таким образом, пять моделей будут усреднены. В определении модели Caret я не вижу этого изменения.

Если для аргумента bag установлено значение TRUE, то подбор модели и агрегация выполняются с помощью агрегации начальной загрузки , что, на мой взгляд, почти гарантирует лучшую прогностическую производительность при большом количестве моделей. достаточно.

...