我正在使用Python并且有一些混淆矩阵.我想通过多类分类中的混淆矩阵来计算精度和回忆以及f-度量.我的结果日志不包含y_true和y_pred,只包含混淆矩阵.
你能告诉我如何从多类分类的混淆矩阵中得到这些分数吗?
python machine-learning confusion-matrix scikit-learn precision-recall
为了后续讨论,我使用R 中的keras包。
给定创建的混淆矩阵如下:
# Get confusion matrix for predictions
classes <- model %>% predict_classes(test, batch_size=128)
ct <- table(test.target, classes)
cm <- as.matrix(ct)
Run Code Online (Sandbox Code Playgroud)
给出ct以下混淆矩阵:
classes
test.target 0 1 2
0 805 192 0
1 74 862 0
2 2 0 477
Run Code Online (Sandbox Code Playgroud)
如何计算真阳性 (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])
}
Run Code Online (Sandbox Code Playgroud)
编辑:dput(cm) …