У меня есть вопрос, касающийся построения матрицы путаницы из ссылки ниже: Класс предсказания рейнджера Вероятность каждой строки во фрейме данных
Если у меня есть следующий код, например ( как объясняется ответом в ссылке):
library(ranger)
library(caret)
idx = sample(nrow(iris),100)
data = iris
data$Species = factor(ifelse(data$Species=="versicolor",1,0))
Train_Set = data[idx,]
Test_Set = data[-idx,]
mdl <- ranger(Species ~ ., ,data=Train_Set,importance="impurity", save.memory = TRUE, probability=TRUE)
probabilities <- as.data.frame(predict(mdl, data = Test_Set,type='response', verbose = TRUE)$predictions)
max.col(probabilities) - 1
Вызов
confusionMatrix(table(Test_Set$Species, max.col(probabilities)-1))
дает:
И, используя это
caret::confusionMatrix(table(max.col(probabilities) - 1,Test_Set$Species))
дает
, который является правильным способом создания матрицы путаницы, поскольку значения чувствительности, специфичности, ppv, npv отличаются, потому что tp, переключатели tn, fp, fn?
Если я требую, чтобы положительный класс был равен 1, скорее всего, используя
caret::confusionMatrix(table(max.col(probabilities) - 1,Test_Set$Species), positive = '1')
, я получаю
Итак, значения в матрицах: tp = 13, tn = 36, fp = 0, fn = 1, верно?
Я не совсем понимаю, как читать значения матрицы путаницы.