Ich habe ein feines randomForest
Klassifizierungsmodell, das ich in einer Anwendung verwenden möchte, die die Klasse eines neuen Falls vorhersagt. Dem neuen Fall fehlen zwangsläufig Werte. Predict funktioniert als solches für NAs nicht. Wie soll ich das dann machen?
data(iris)
# create first the new case with missing values
na.row<-45
na.col<-c(3,5)
case.na<-iris[na.row,]
case.na[,na.col]<-NA
iris.rf <- randomForest(Species ~ ., data=iris[-na.row,])
# print(iris.rf)
myrf.pred <- predict(iris.rf, case.na[-5], type="response")
myrf.pred
[1] <NA>
Ich habe es versucht missForest
. Ich habe die Originaldaten und den neuen Fall kombiniert, mit ihnen missForest
geschüttelt und in meinem neuen Fall unterstellte Werte für NAs erhalten. Zu viel Computer.
data.imp <- missForest(data.with.na)
Aber es muss eine Möglichkeit geben, das RF-Modell zu verwenden, um einen neuen Fall mit fehlenden Werten vorherzusagen, oder?
randomForest
Paket in R verfügt nur über die von Ihnen beschriebene Imputationsmethode. Wenn Sie in einer ähnlichen Umgebung bleiben möchten,gbm
haben Sie eine etwas flüssigere Methode, um fehlende Werte in neuen Daten zu behandeln (es ist nicht perfekt, aber es ist nützlich).party
Paket mit NAs im Testset? Ich konnte inparty
Handbüchern oder Beispielen keine Spur von Zuschreibungen finden .Antworten:
Sie haben keine andere Wahl, als die Werte zu unterstellen oder Modelle zu ändern. Eine gute Wahl könnte aregImpute im Hmisc-Paket sein. Ich denke, es ist weniger schwer als rfimpute, was Sie festhält, erstes Paketbeispiel (es gibt andere):
Sie erwähnen, dass Sie viele neue Beobachtungen haben, bei denen Werte für die unabhängigen Variablen fehlen. Auch wenn Sie viele Fälle wie diesen haben, wenn für jede neue Beobachtung nur eine oder zwei ihrer Variablen fehlen und Ihre Anzahl von Variablen nicht winzig ist, füllen Sie möglicherweise nur die Löcher mit einem Median oder Durchschnitt (sind sie kontinuierlich?) könnte klappen.
Eine andere Sache, die interessant sein könnte, ist eine geringfügige Analyse der variablen Wichtigkeit. Die zufällige Forest R-Implementierung berechnet zwei Wichtigkeitsmaße und entsprechende Diagramme:
Und Sie können damit herumspielen, nur "wichtige" Variablen in das Modelltraining einzubeziehen, bis die Vorhersagegenauigkeit im Vergleich zum "vollständigen Modell" nicht mehr so stark beeinträchtigt ist. Vielleicht behalten Sie Variablen mit einer geringen Anzahl von Fehlern. Dies könnte Ihnen helfen, die Größe Ihres Problems zu verringern.
quelle