4

Я не могу на всю жизнь понять, как вычислить матрицу путаницы на rpart.матрица смешения от rpart

Вот что я сделал:

set.seed(12345) 
UBANK_rand <- UBank[order(runif(1000)), ] 
UBank_train <- UBank_rand[1:900, ] 
UBank_test <- UBank_rand[901:1000, ] 


dim(UBank_train) 
dim(UBank_test) 

#Build the formula for the Decision Tree 
UB_tree <- Personal.Loan ~ Experience + Age+ Income +ZIP.Code + Family + CCAvg + Education 

#Building the Decision Tree from Test Data 
UB_rpart <- rpart(UB_tree, data=UBank_train) 

Теперь, я думаю, что я хотел бы сделать что-то вроде

table(predict(UB_rpart, UBank_test, UBank_Test$Default)) 

Но это не дает мне матрицу путаницы.

ответ

8

Вы не предоставили воспроизводимый пример, поэтому я создам синтетический набор данных:

set.seed(144) 
df = data.frame(outcome = as.factor(sample(c(0, 1), 100, replace=T)), 
       x = rnorm(100)) 

predict функция для rpart модели с type="class" возвращает предсказанный класс для каждого наблюдения.

library(rpart) 
mod = rpart(outcome ~ x, data=df) 
pred = predict(mod, type="class") 
table(pred) 
# pred 
# 0 1 
# 51 49 

Наконец, вы можете создать матрицу путаницы, запустив table между предсказанием и истинного результата:

table(pred, df$outcome) 
# pred 0 1 
# 0 36 15 
# 1 14 35 
-1

Вы можете попробовать

pred <- predict(UB_rpart, UB_test) confusionMatrix(pred, UB_test$Personal.Loan)

Смежные вопросы