Tôi có một df dataframe, Tôi đang xây dựng một mô hình học máy (C5.0 cây quyết định) để dự đoán lớp của một cột (loan_approved):Làm thế nào để xử lý các lỗi trong chức năng dự đoán của R?
cơ cấu (không dữ liệu thực tế):
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
Process:
- tôi ngẫu nhiên chia khung dữ liệu vào thử nghiệm và đào tạo, học trên tàu bộ dữ liệu (hàng 1,2,3,5,6 tàu một d hàng 4 như test)
- Để chiếm mức phân loại mới trong một hoặc nhiều cột, tôi đã sử dụng chức năng thử
Chức năng:
error_free_predict = function(x){
output = tryCatch({
predict(C50_model, newdata = test[x,], type = "class")
}, error = function(e) {
"no"
})
return(output)
}
Áp dụng các chức năng dự đoán:
test <- mutate(test, predicted_class = error_free_predict(1:NROW(test)))
Vấn đề:
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
Câu hỏi:
Tôi biết điều này là bởi vì các khung dữ liệu thử nghiệm đã có một tầm cao mới mà đã không có mặt trong dữ liệu huấn luyện, nhưng không nên chức năng của tôi làm việc tất cả các trường hợp ngoại trừ điều này?
P.S: không sử dụng một cách dễ dàng vì nó quá chậm
Vấn đề thực tế của bạn là gì? Có phải nó chỉ trả về 'không'? Lỗi được trả về bởi lệnh 'predict định' là gì? – cdeterman
vấn đề là chức năng dự đoán đang gặp phải các yếu tố mới trong cột 'chiếm đóng' và thất bại không chỉ cho một hàng đó, mà còn xử lý toàn bộ khung dữ liệu như trường hợp bị lỗi –
Có vẻ như bạn nên phân tầng cùng số lượng mỗi danh mục trong mỗi phần tách. – Aaron