2017-12-08 3 views
0

Ich möchte ein neuronales Netzwerkmodell mit Caret-Paket anpassen. Es gibt 208 Prädiktoren, von denen alle wichtig sind und nicht verworfen werden können. Der Maximalwert, den ich dem Size-Parameter geben kann, ist 4, jenseits dessen bekomme ich einen Fehler, der besagt, dass es zu viele Gewichte gibt.Tuning-Size-Parameter für neuronales Netzwerk

> ctrl<-trainControl(method = 'cv',number = 5) 
> my.grid <- expand.grid(.decay = 0.1, .size =5) 
> nn.fit <- train(train_predictors,train_responses[["r2c1"]],method = "nnet",algorithm = 'backprop', tuneGrid = my.grid,trace=F, linout = TRUE,trControl = ctrl) 
Something is wrong; all the RMSE metric values are missing: 
     RMSE  Rsquared  MAE  
Min. : NA Min. : NA Min. : NA 
1st Qu.: NA 1st Qu.: NA 1st Qu.: NA 
Median : NA Median : NA Median : NA 
Mean :NaN Mean :NaN Mean :NaN 
3rd Qu.: NA 3rd Qu.: NA 3rd Qu.: NA 
Max. : NA Max. : NA Max. : NA 
NA's :1  NA's :1  NA's :1  
Error: Stopping 
In addition: Warning messages: 
1: model fit failed for Fold1: decay=0.1, size=5 Error in nnet.default(x, y, w, ...) : too many (1051) weights 

2: model fit failed for Fold2: decay=0.1, size=5 Error in nnet.default(x, y, w, ...) : too many (1051) weights 

3: model fit failed for Fold3: decay=0.1, size=5 Error in nnet.default(x, y, w, ...) : too many (1051) weights 

4: model fit failed for Fold4: decay=0.1, size=5 Error in nnet.default(x, y, w, ...) : too many (1051) weights 

5: model fit failed for Fold5: decay=0.1, size=5 Error in nnet.default(x, y, w, ...) : too many (1051) weights 

6: In nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo, : 
    There were missing values in resampled performance measures. 

Das Modell funktioniert sehr schlecht mit 4 Neuronen (size = 4) .Wie kann ich das Modell arbeiten lassen, wenn ich will mehr als 5 Neuronen haben?

Antwort

0

Es gibt weitere Parameter im Optimierungsraster, die Sie für die nnet-Methode angeben können. Die verfügbaren Parameter für jede Methode sind online verfügbar, aber schwer zu finden. Hier ist mein Beispiel mit mxnet für adam nn:

mxnet_grid_A2 = expand.grid(layer1 = c(10, 12), 
          layer2 = c(4, 6), 
          layer3 = 2, 
          learningrate = c(0.001, 0.0001), 
          dropout = c(0, 0.2) 
          beta1 = .9, 
          beta2 = 0.999, 
          activation = 'relu')