Overall Accuracy(OA)、Average Accuracy(AAcc)计算公式

四个重要的指标:
True Positive(TP)、False Positive(FP)、True Negative(TN)和False Negative(FN)。
TP表示分类器预测结果为正样本,实际也为正样本,即正样本被正确识别的数量;
FP表示分类器预测结果为正样本,实际为负样本,即误报的负样本数量;
TN表示分类器预测结果为负样本,实际也为负样本,即负样本被正确识别的数量;
FN表示分类器预测结果为负样本,实际为正样本,即漏报的正样本数量。

以二分类为例:

1.总体精度(Overall Accuracy, OA):样本中正确分类的总数除以样本总数。
OA=(TP+TN)/(TP+FN+FP+TN)

2.平均精度(Average Accuracy, AA):每一类别中预测正确的数目除以该类总数,记为该类的精度,最后求每类精度的平均。
AA=(TP/(TP+FN)+TN/(FP+TN))/2

OA与Accuracy定义一致。AA与Recall计算公式比较一致,不过考虑了正负两例的计算。


 Accuracy、Precision、Recall以及F-score

1.准确率(Accuracy):模型的精度,即模型预测正确的个数 / 样本的总个数;一般情况下,模型的精度越高,说明模型的效果越好。
Accuracy=(TP+TN)/(TP+TN+FP+FN) 

2.精确率(Precision):模型预测为正的部分的正确率。
Precision=TP/(TP+FP) 

3.召回率(Recall):真实值为正的部分,被模型预测出来且正确的比重。
Recall=TP/(TP+FN) 

4.F1-score:此指标综合了Precision与Recall的产出的结果,取值范围从0到1的,1代表模型的输出最好,0代表模型的输出结果最差。
F=2*Precision*Recall/(Precision+Recall)

IoU与MIoU

以二分类为例:

IoU(Intersection over Union,交并比):计算某一类别预测结果和真实值的交集和并集的比值。计算公式如下:

MIoU(Mean Intersection over Union,平均交并比):计算所有类别的IoU的平均值。计算公式如下(因k从0开始,故需要加1):

计算二分类混淆矩阵中正负两类的MIoU MIoU=(IoU(正)+IoU(负))/2 =(TP/(FN+FP+TP)+TN/(TN+FN+FP))/2

多分类:

某一类的IoU的分子为:该类所在混淆矩阵对角线的值。

某一类的IoU的分母为:该类所在混淆矩阵对角线的位置对应的行和列的总和。(对角线位置的值只能计算一次)


因对于一个样本来说,FN+TP是固定的,那么IoU就可以变为IoU=TP/(K+FP),那么主要相当于分析TP与FP的变化趋势。孤立的分析IoU,这里有4种情况可能使得IoU变大:

1)TP不变,FP减小;IoU肯定变大

2)TP变小,FP变小;IoU应该可大可小

3)TP变大,FP不变;IoU肯定变大

3)TP变大,FP变大;IoU应该可大可小!如下表格C1到C2,IC1=1/(1+5)=1/6、IC2=3/(4+5)=1/3;此时虽然IoU变大,但是Accuracy却变小了,模型的好坏需要另外讨论。

假设TPFNFPTNTotal
C1141410
C2324110
C3232310

也就是说IoU变大,模型不一定变好,但大多数情况下还是变好的。 


 混淆矩阵及相关精度指标计算和实现记录 - 他的博客 - 博客园 (cnblogs.com)

### 总体准确率 (OA) 总体准确率(Overall Accuracy, OA)是指分类正确的像素数占总像素数的比例。计算公式如下: \[ \text{OA} = \frac{\sum_{i=1}^{n} TP_i}{\sum_{i=1}^{n}(TP_i + FN_i)} \] 这里 \( TP_i \) 表示第 i 类的真实正例数量,\( FN_i \) 是第 i 类的假负例数量[^2]。 ```python def calculate_OA(confusion_matrix): total_correct = sum([confusion_matrix[i][i] for i in range(len(confusion_matrix))]) total_pixels = sum(sum(row) for row in confusion_matrix) return total_correct / total_pixels # 示例混淆矩阵 [[TN, FP], [FN, TP]] confusion_matrix_example = [ [90, 10], [5, 95] ] oa_value = calculate_OA(confusion_matrix_example) print(f"Overall Accuracy (OA): {oa_value}") ``` ### 平均准确度 (AA) 平均准确度(Average Accuracy, AAcc),也称为每类精度的平均值,定义为每一类别的精确度之和除以类别总数。具体表达式为: \[ \text{AAcc} = \frac{1}{N}\sum_{i=1}^{N} Acc(i), \quad Acc(i)=\frac{T P_i}{T P_i+F N_i} \] 其中 \( Acc(i) \) 表达的是针对特定类 i 的准确性。 ```python import numpy as np def calculate_AAcc(confusion_matrix): accuracies_per_class = [] num_classes = len(confusion_matrix) for i in range(num_classes): true_positives = confusion_matrix[i][i] false_negatives = sum(confusion_matrix[i]) - true_positives accuracy_for_class = true_positives / (true_positives + false_negatives) if (true_positives + false_negatives) != 0 else 0 accuracies_per_class.append(accuracy_for_class) aacc_value = np.mean(accuracies_per_class) return aacc_value aacc_result = calculate_AAcc(confusion_matrix_example) print(f"Average Accuracy (AAcc): {aacc_result}") ``` ### Kappa 系数 Kappa系数衡量了观测到的一致性和预期一致性之间的关系。其计算公式可以写作: \[ \kappa=\frac{P_o-P_e}{1-P_e}, \] 这里的 \( P_o \) 是实际观察到的一致性的概率,而 \( P_e \) 则是在随机情况下预计一致的概率[^3]。 为了更清晰地理解这个概念,考虑以下 Python 实现来展示如何基于给定的数据集评估 kappa 值。 ```python from sklearn.metrics import cohen_kappa_score def calculate_Kappa(confusion_matrix): n = sum(sum(row) for row in confusion_matrix) po = sum(confusion_matrix[i][i] for i in range(len(confusion_matrix))) / n pe_sum = 0 col_sums = list(map(sum, zip(*confusion_matrix))) row_sums = list(map(sum, confusion_matrix)) for r, c in zip(row_sums, col_sums): pe_sum += (r * c) / (n ** 2) pe = pe_sum kappa_value = (po - pe) / (1 - pe) if (1-pe)!=0 else None return kappa_value kappa_result = calculate_Kappa(confusion_matrix_example) print(f"Kappa Coefficient: {kappa_result}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yokon_D

您的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值