2016-04-05 11 views
1

H2O Deep Learning läuft Regression standardmäßig, obwohl ich sichergestellt habe, dass die Zielvariable ein Faktor ist (mit nur zwei Ebenen). Irgendwelche Hinweise darauf, wie das gelöst werden kann?H2O Deep Learning R

Unten ist der Code:

dnn_mod <- 
    h2o.deeplearning(x = 2:321, # column numbers for predictors 
        y = 322, # column number for label 
        training_frame = sdcs_data, # data in H2O format 
        activation = "TanhWithDropout", # or 'Tanh' 
        input_dropout_ratio = 0.2, # % of inputs dropout 
        hidden_dropout_ratios = c(0.3,0.3,0.3), # % for nodes dropout 
        balance_classes = FALSE, 
        hidden = c(150,150,150), 
        epochs = 500, 
        #standardize = TRUE, 
        epsilon = 1.0e-5, 
        loss = "CrossEntropy", 
        stopping_rounds = 50, 
        stopping_metric = "AUC") 
        #classification = TRUE) 
+0

was meinst du mit "läuft Regression"? – lejlot

+0

Standardmäßig wird ein Regressionsmodell anstelle der Klassifizierung ausgeführt. Parameter wie der CrosseEntropy-Verlust machen in diesem Fall keinen Sinn und werfen einen Fehler. –

+0

Also setze nicht loss = "CrossEntropy" .... –

Antwort

2

Wenn Sie Klassifizierung ausführen können, dann Ihre Antwort Variable als "Faktor" (aka "Enum") Typ codiert werden müssen. Siehe hierzu R code example aus der H2O Deep Learning booklet. Dies ist bei allen H2O-Algorithmen der Fall.

+0

Pro meine Frage Ich habe bereits sichergestellt, dass die Antwort als "Faktor" kodiert ist. –

+0

Sind Sie sicher, dass die Spalte 322 die Antwortspalte ist? Bitte fügen Sie die Ausgabe von 'h2o.describe (sdcs_data [, 322])' oder 'h2o.getTypes (data) [[322]]' 'ein. Es sollte "enum" sagen. –

+0

Zusätzlich können Sie 'distribution =" bernoulli "' setzen und wenn Sie Ihre Antwort irrtümlich nicht auf einen Faktor umgestellt haben, dann sehen Sie eine Nachricht, die folgendes enthält: '" bernoulli distribution ist für die Regression nicht erlaubt. "' –

Verwandte Themen