2015-07-28 4 views
6

Ich habe andere Menschen mit diesem Fehler zuvor gesehen, jedoch habe ich keine befriedigende Antwort gefunden. Ich frage mich, ob jemand ein paar Einblicke in mein Problem geben kann?Caret Neural Network Fehler: "fehlende Werte in resampled Leistungskennzahlen"

Ich habe einige Autoauktionsdaten, die ich modelliere, um die Hammer.Price vorherzusagen.

> str(myTrain) 
'data.frame': 34375 obs. of 9 variables: 
$ Grade   : int 4 4 4 4 2 3 4 3 3 4 ... 
$ Mileage  : num 150850 113961 71834 57770 43161 ... 
$ Hammer.Price : num 750 450 1600 4650 4800 ... 
$ New.Price  : num 15051 13795 15051 14475 14475 ... 
$ Year.Introduced: int 1996 1996 1996 1996 1996 1996 1996 1996 1996 1996 ... 
$ Engine.Size : num 1.6 1.6 1.6 1.6 1.6 1.6 1.6 1.6 1.6 1.6 ... 
$ Doors   : int 3 3 3 3 3 3 3 3 3 3 ... 
$ Age   : int 3771 4775 3802 2402 2463 3528 3315 3193 4075 4988 ... 
$ Days.from.Sale : int 1778 1890 2183 1939 1876 1477 1526 1812 1813 1472 ... 

myTrain enthält ein zufälliges 70% der Daten und myTest das andere 30%, trainiere ich das Modell

myModel <- train(Hammer.Price ~ ., data = myTrain, method = "nnet") 

Dies ist in der folgenden Warnung ergibt:

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

Als ich versuchen Sie, alle Ergebnisse vorherzusagen, sind gleich 1.

myTestPred <- predict(myModel, myTest) 

Ich habe zuvor diese Daten verwendet, um ein MLP neuronales Netzwerk mit SPSS Modeller zu trainieren, aber scheinen nicht in der Lage, die Ergebnisse in R neu zu erstellen. Ich habe einige der anderen neuronalen Netzwerkpakete in Caret versucht, aber immer gleich Ergebnis.

Versteht jemand das besser als ich?

Antwort

3

Behebt es das Problem, wenn Sie die Daten vor dem Aufruf von train skalieren? Ich hatte dieses Problem mit Glmnet und Nnet, wenn Sie nicht alle Variablen vor dem Ausführen des Modells skalieren. Es hilft auch (anekdotisch), wenn Sie alle Ihre Variablen numerisch machen.

Sie können auch versuchen, das Resampling explizit zu machen, z. mit

myControl <- trainControl(method = "repeatedcv", repeats=5, number = 10) 

und Leiten dieses dann zu train:

myModel <- train(Hammer.Price ~ ., 
    data = myTrain, 
    method = "nnet", 
    trControl = mycontrol) 

Ohne die Daten, die es manchmal schwierig ist, den Fehler zu erkennen, sorry.

+1

Danke für die Antwort. Leider half keines dieser Dinge. Ich habe festgestellt, dass das Brnn-Paket für den Datensatz funktioniert, aber ich bin mir nicht sicher warum. –

0

Ihre Zielvariable Hammer.Price ist eine numerische Variable. Auf der Hilfeseite der nnet-Funktion sehen Sie, dass der Standardwert in nnet eine logistische Zielvariable ist. Wenn Sie also numerische Zielvariablen modellieren, müssen Sie nnet mitteilen, dass Sie dies tun. Der Parameter linout ist der, den Sie brauchen. Durch die Einstellung linout = TRUE sollten Sie die Warnmeldung nicht erneut erhalten.

Verwandte Themen