gpt4 book ai didi

r - 从 R 中的矩阵计算真/假阳性和真/假负值

转载 作者:行者123 更新时间:2023-12-02 02:51:11 24 4
gpt4 key购买 nike

为了后续讨论,我使用 R 中的 keras 包。

假设创建的混淆矩阵如下:

# Get confusion matrix for predictions
classes <- model %>% predict_classes(test, batch_size=128)
ct <- table(test.target, classes)
cm <- as.matrix(ct)

为此 ct给出以下混淆矩阵:

           classes
test.target 0 1 2
0 805 192 0
1 74 862 0
2 2 0 477

如何计算真阳性 (TP)、假阳性 (FP)、真阴性 (TN) 和假阴性 (FN) 值?

为了澄清起见,我通过获取矩阵的对角线来计算真阳性 (TP) 值:

tp <- diag(cm)

但是,我计算 FP 值的尝试给出了负数(我猜这不可能是正确的,对吗?):

# Get false positive rates (FP)
fp <- c()
for(i in seq_len(ncol(ct))) {
fp <- append(fp, sum(cm[,i])-cm[i,i])
}

编辑:dput(cm)如下:

structure(c(805L, 74L, 2L, 192L, 862L, 0L, 0L, 0L, 477L), .Dim = c(3L, 
3L), .Dimnames = list(test.target = c("0", "1", "2"), classes = c("0",
"1", "2")), class = "table")

最佳答案

这个问题实际上已经在 Stack Overflow 上处理过好几次了(例如 hereherehere ),但据我在 R 的上下文中发现,从来没有,所以我认为不这样做是安全的算作重复。

正如您所说,真正的正数是对角线元素。您遇到的误报如下:类 i 的误报是列 i 中的单元格总和,而不是行 i 中的单元格总和.

假阴性的定义类似:类 i 的假阴性是行 i 中的单元格总和,但不是列 i 中的单元格总和。

那么类 i 的真负数就是不在行 i 中的所有元素。

我们可以计算如下:

true_positives  <- diag(cm)
0 1 2
805 862 477
false_positives <- colSums(cm) - true_positives
0 1 2
76 192 0
false_negatives <- rowSums(cm) - true_positives
0 1 2
192 74 2
true_negatives <- sum(cm) - true_positives - false_positives - false_negatives
0 1 2
1339 1284 1933

您甚至可以创建一个供以后重用的函数:

multi_class_rates <- function(confusion_matrix) {
true_positives <- diag(confusion_matrix)
false_positives <- colSums(confusion_matrix) - true_positives
false_negatives <- rowSums(confusion_matrix) - true_positives
true_negatives <- sum(confusion_matrix) - true_positives -
false_positives - false_negatives
return(data.frame(true_positives, false_positives, true_negatives,
false_negatives, row.names = names(true_positives)))
}

multi_class_rates(cm)
true_positives false_positives true_negatives false_negatives
0 805 76 1339 192
1 862 192 1284 74
2 477 0 1933 2

(您可能想让类成为变量而不是行名称)

关于r - 从 R 中的矩阵计算真/假阳性和真/假负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61955696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com