Mam dokładny randomForest
model klasyfikacji, którego chciałbym użyć w aplikacji, która przewiduje klasę nowego przypadku. W nowym przypadku nieuchronnie brakuje wartości. Prognozy nie będą działać jako takie dla NA. Jak mam to zrobić?
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>
Próbowałem missForest
. Połączyłem oryginalne dane i nowy przypadek, potrząsnąłem nim missForest
i otrzymałem kalkulacyjne wartości dla NA w moim nowym przypadku. Jednak zbyt ciężkie przetwarzanie.
data.imp <- missForest(data.with.na)
Ale musi istnieć sposób na wykorzystanie modelu RF do przewidywania nowego przypadku z brakującymi wartościami, prawda?
randomForest
pakiet w R ma tylko opisaną metodę imputacji. Jeśli chcesz pozostać w podobnym środowisku,gbm
ma nieco płynniejszą metodę obsługi brakujących wartości w nowych danych (nie jest to idealne, ale jest przydatne).party
pakiet działa z NA w zestawie testowym? Nie mogłem znaleźć śladu przypisywania wparty
instrukcjach lub przykładach.Odpowiedzi:
Nie masz wyboru, musisz przypisać wartości lub zmienić modele. Dobrym wyborem może być aregImpute w pakiecie Hmisc. Myślę, że jest mniej ciężki niż rfimpute, co Cię zatrzymało, przykład pierwszego pakietu (są inne):
Wspominasz, że masz wiele nowych obserwacji, w których brakuje wartości niezależnych zmiennych. Chociaż masz wiele takich przypadków, jeśli dla każdej nowej obserwacji brakuje tylko jednej lub dwóch zmiennych, a twoja liczba zmiennych nie jest niewielka, może po prostu wypełniasz dziury medianą lub średnią (czy są one ciągłe?) powinno działać.
Inną rzeczą, która może być interesująca, jest analiza drobnych zmian ważności. Losowa implementacja lasu R oblicza dwie miary ważności i odpowiednie wykresy:
Możesz się bawić z włączeniem „ważnych” zmiennych do treningu modelu, dopóki dokładność prognoz nie wpłynie na to w porównaniu z „pełnym modelem”. Może trzymasz zmienne z małą liczbą braków. Może to pomóc w zmniejszeniu rozmiaru problemu.
źródło