Я пытаюсь вычислить точность с использованием пакета ROCR в R, но результат отличается от того, что я ожидал:Вычислить точность, используя ROCR пакет в R
Предположим, у меня есть предсказание модели (р) и метку (л) следующим образом:
p <- c(0.61, 0.36, 0.43, 0.14, 0.38, 0.24, 0.97, 0.89, 0.78, 0.86)
l <- c(1, 1, 1, 0, 0, 1, 1, 1, 0, 1)
И я точность вычисления этого предсказания, используя следующие команды:
library(ROCR)
pred <- prediction(p, l)
perf <- performance(pred, "acc")
max([email protected][[1]])
но результат 0,8, который в соответствии с формулой точности (ТР + TN)/(TN + TP + FN + FP) должно быть .6 Я не знаю почему?
Благодарим вас за ответ. Как можно получить точность для «0,5» отсечки? Это 'max ([email protected] [[0.5]])?? Кроме того, знаете ли вы, почему нам нужно 'max()' в получении этих данных? – Rhubarb
@ Zhhubarb с ROCR Я бы использовал '[email protected] [[1]] [max (который ([email protected] [[1]]> = 0.5))]'. – josliber
Отлично, поэтому в этом конкретном примере '[email protected]= Inf 0.97 0.89 0.86 0.78 0.61 0.43 0.38 0.36 0.24 0.14' и '[email protected]=0.3 0.4 0.5 0.6 0.5 0.6 0.7 0.6 0.7 0.8 0.7 0.7'. Поэтому ваш код возвращает 'acc' для' cut_off = 0.61' (который является самым маленьким отсечкой более 0,5), это правильно? – Rhubarb