По какой-то причине значение по умолчанию predict(efit, test_data, type = "class")
в этом случае не работает (возможно, потому что ваша модель предсказывает 0
для всех наблюдений в тестовом наборе данных).Вам также необходимо построить таблицу, используя ваш результат (то есть test_data[,ncol(test_data)]
возвращает euribor3m
).Должно работать следующее:
pre <- predict(efit, test_data, type = "raw") %>%
as.data.frame() %>%
mutate(prediction = if_else(0 < 1, 0, 1)) %>%
pull(prediction)
bayes_table <- table(pre, test_data$y)
accuracy_test_bayes <- sum(diag(bayes_table)) / sum(bayes_table)
list('predict matrix' = bayes_table, 'accuracy' = accuracy_test_bayes)
# $`predict matrix`
#
# pre 0 1
# 0 7282 956
#
# $accuracy
# [1] 0.8839524