Построение путаницы - PullRequest
       84

Построение путаницы

1 голос
/ 29 апреля 2020

У меня есть вопрос, касающийся построения матрицы путаницы из ссылки ниже: Класс предсказания рейнджера Вероятность каждой строки во фрейме данных

Если у меня есть следующий код, например ( как объясняется ответом в ссылке):

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))

дает: enter image description here

И, используя это

caret::confusionMatrix(table(max.col(probabilities) - 1,Test_Set$Species))

дает enter image description here

, который является правильным способом создания матрицы путаницы, поскольку значения чувствительности, специфичности, ppv, npv отличаются, потому что tp, переключатели tn, fp, fn?

Если я требую, чтобы положительный класс был равен 1, скорее всего, используя

caret::confusionMatrix(table(max.col(probabilities) - 1,Test_Set$Species), positive = '1')

, я получаю enter image description here

Итак, значения в матрицах: tp = 13, tn = 36, fp = 0, fn = 1, верно?

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

1 Ответ

1 голос
/ 29 апреля 2020

Я понял конструкцию матриц путаницы и роль записей, если класс меняется.

Матрицы смешения для класса 0, полученные с использованием

caret::confusionMatrix(table(max.col(probabilities) - 1,Test_Set$Species), positive = '0')

, и матрицы класса 1, полученные с использованием

caret::confusionMatrix(table(max.col(probabilities) - 1,Test_Set$Species), positive = '1')

, одинаковы и

enter image description here

В случае класса 0: tp = 36, tn = 13, fp = 1, fn = 0 и в случае класса 1: tp = 13, tn = 36, fp = 0, fn = 1 (роли tp и tn, а также роли fp и fn переключаются).

...