Khi cố gắng sử dụng đầu ra của randomForest
để phân loại dữ liệu mới (hoặc thậm chí dữ liệu huấn luyện ban đầu), tôi nhận được lỗi sau:mức yếu tố mới không có mặt trong các dữ liệu huấn luyện
> res.rf5 <- predict(model.rf5, train.rf5)
Error in predict.randomForest(model.rf5, train.rf5) :
New factor levels not present in the training data
gì lỗi này nghĩa là? Tại sao lỗi này xảy ra ngay cả khi tôi cố gắng dự đoán cùng một dữ liệu tôi đã sử dụng để đào tạo?
Ví dụ nhỏ có thể được sử dụng để tạo lại lỗi dưới đây.
train.rf5 <- structure(
list(A = structure(c(2L, 1L, 1L, 1L, 1L, 1L, 3L, 1L, 1L, 3L),
.Label = c("(-0.1,19.9]", "(19.9,40]", "(80.1,100]"),
class = c("ordered", "factor")),
B = structure(c(3L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 4L),
.Label = c("1", "2", "4", "5"),
class = c("ordered", "factor")),
C = structure(c(1L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L),
.Label = c("FALSE", "TRUE"),
class = "factor")),
.Names = c("A", "B", "C"),
row.names = c(7L, 8L, 10L, 11L, 13L, 15L, 16L, 17L, 18L, 19L),
class = "data.frame")
# A B C
# 7 (19.9,40] 4 FALSE
# 8 (-0.1,19.9] 1 FALSE
# 10 (-0.1,19.9] 1 TRUE
# 11 (-0.1,19.9] 1 FALSE
# 13 (-0.1,19.9] 1 FALSE
# 15 (-0.1,19.9] 1 TRUE
# 16 (80.1,100] 2 TRUE
# 17 (-0.1,19.9] 1 FALSE
# 18 (-0.1,19.9] 1 FALSE
# 19 (80.1,100] 5 TRUE
require(randomForest)
model.rf5 <- randomForest(C ~ ., data = train.rf5)
res.rf5 <- predict(model.rf5, train.rf5) # Causes error
tôi thấy một số câu hỏi có thể có liên quan trên SO, nhưng tôi không nghĩ rằng họ giải quyết vấn đề của tôi trực tiếp
- dropping factor levels in a subsetted data frame in R
- Random forest package in R shows error during prediction() if there are new factor levels present in test data. Is there any way to avoid this error?
Không giống như 1), tôi làm không có các mức yếu tố không được biểu diễn trong dữ liệu và không giống như 2), các mức hệ số trong dữ liệu thử nghiệm và tàu của tôi giống hệt nhau.
Edit: Thông tin thêm:
sessionInfo()
R version 3.0.1 (2013-05-16)
Platform: x86_64-pc-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=C LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] randomForest_4.6-7
loaded via a namespace (and not attached):
[1] tools_3.0.1
Tôi đặt cược nó có liên quan đến các yếu tố được sắp xếp. –