mam df dataframe, Buduję model uczenia maszynowego (drzewo decyzyjne C5.0) do przewidywania klasy kolumny (loan_approved):Jak radzić sobie z błędami w przewidywaniu funkcji R?
konstrukcji (nie prawdziwe dane):
id occupation income loan_approved
1 business 4214214 yes
2 business 32134 yes
3 business 43255 no
4 sailor 5642 yes
5 teacher 53335 no
6 teacher 6342 no
procesu:
- i podzielono losowo ramkę danych do testów i pociągu kolejowego nabytych w zbiorze (wiersze 1,2,3,5,6 trenowanie d wiersz 4 jako test)
- W celu uwzględnienia nowego poziomu skategoryzowane w jednym lub wielu kolumn, że stosuje się funkcję próba
Funkcja:
error_free_predict = function(x){
output = tryCatch({
predict(C50_model, newdata = test[x,], type = "class")
}, error = function(e) {
"no"
})
return(output)
}
zastosował funkcję przewidywania:
test <- mutate(test, predicted_class = error_free_predict(1:NROW(test)))
problem:
id occupation income loan_approved predicted_class
1 business 4214214 yes no
2 business 32134 yes no
3 business 43255 no no
4 sailor 5642 yes no
5 teacher 53335 no no
6 teacher 6342 no no
Pytanie:
wiem, że to dlatego, że ramka danych Test miał nowy poziom, który nie był obecny w danych pociąg, ale nie powinno moja funkcja pracy we wszystkich przypadkach z wyjątkiem tego?
P.S: nie używać sapply ponieważ był zbyt powolny
Jaki jest twój rzeczywisty problem? Czy to tylko powrót "nie"? Jaki jest błąd, który jest zwracany przez wywołanie 'predict'? – cdeterman
Problem polega na tym, że funkcja przewidywania napotyka nowe poziomy czynników w kolumnie "okupacja" i nie tylko dla tego jednego wiersza, ale traktuje całą ramkę danych jako nieudaną próbę. –
Wygląda na to, że powinieneś rozwarstwiać podział tak, aby z grubsza ten sam numer każdej kategorii w każdym podziale. – Aaron