混淆矩阵以及精确率召回率的计算

混淆矩阵是用来总结一个分类器结果的矩阵。对于k元分类,其实它就是一个k x k的表格,用来记录分类器的预测结果。

对于最常见的二元分类来说,它的混淆矩阵是2乘2的,如下

TP = True Postive = 真阳性; FP = False Positive = 假阳性

FN = False Negative = 假阴性; TN = True Negative = 真阴性

 

比如我们一个模型对15个样本进行预测,然后结果如下:

预测值:1    1    1    1    1    0    0    0    0    0    1    1    1    0    1

真实值:0    1    1    0    1    1    0    0    1    0    1    0    1    0    0

 

    

这个就是混淆矩阵。

 

 

混淆矩阵中的这四个数值,经常被用来定义其他一些度量。

 

准确度(Accuracy) = (TP+TN) / (TP+TN+FN+TN)

在上面的例子中,准确度 = (5+4) / 15 = 0.6

 

精度(precision, 或者PPV, positive predictive value) = TP / (TP + FP)

在上面的例子中,精度 = 5 / (5+4) = 0.556

 

召回(recall, 或者敏感度,sensitivity,真阳性率,TPR,True Positive Rate) = TP / (TP + FN),计算方式是真阳性除以真阳性+假阴性。

在上面的例子中,召回 = 5 / (5+2) = 0.714

 

特异度(specificity,或者真阴性率,TNR,True Negative Rate) = TN / (TN + FP),计算方式是真阴性除以真阴性+假阳性(实际为阴性,但判断为阳性)

在上面的例子中,特异度 = 4 / (4+4) = 0.5

 

F1-值(F1-score) = 2*TP / (2*TP+FP+FN) 

在上面的例子中,F1-值 = 2*5 / (2*5+4+2) = 0.625

  • 9
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 混淆矩阵是评估分类器准确率的一种方法,其中包含四个关键参数:True Positive(真正),False Positive(假正),True Negative(真负)和False Negative(假负)。召回率是分类器预测的正样本中实际正样本比例,精确率是分类器预测为正的样本中实际为正的样本比例。以下是Matlab中计算混淆矩阵召回率精确率的代码: % 假设我们有一个二分类器,输入为x,标签为y % 首先,需要使用分类器对测试数据进行预测: y_pred = predict(classifier, X_test); % 然后,计算混淆矩阵: C = confusionmat(y_test, y_pred); % 得到混淆矩阵后,可以计算召回率: recall = C(1,1)/(C(1,1)+C(1,2)); % 计算精确率: precision = C(1,1)/(C(1,1)+C(2,1)); 其中,y_test 和 y_pred 分别是测试集标签和预测标签。C 是混淆矩阵,recall 是召回率,precision 是精确率。 ### 回答2: 混淆矩阵是用于衡量分类法的性能指标,其中包括真正例(TP)、假正例(FP)、真反例(TN)、假反例(FN)。召回率是指在所有实际为正例的样本中,分类器能够正确预测为正例的比例。精确率是指在分类器预测的结果中,真正例所占的比例。 以下是使用Matlab计算混淆矩阵的示例代码: ```matlab % 假设有一组真实标签和预测标签 true_label = [1, 0, 1, 1, 0, 0, 1, 1, 0, 1]; predict_label = [1, 1, 0, 1, 0, 1, 0, 1, 1, 0]; % 计算混淆矩阵 TP = sum(true_label == 1 & predict_label == 1); FP = sum(true_label == 0 & predict_label == 1); TN = sum(true_label == 0 & predict_label == 0); FN = sum(true_label == 1 & predict_label == 0); confusion_matrix = [TP, FP; FN, TN]; ``` 接下来可以用混淆矩阵计算召回率精确率: ```matlab recall = TP / (TP + FN); precision = TP / (TP + FP); ``` 最后得到召回率为0.6,精确率为0.625。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值