多分类中accuary与micro F1-score的恒等性

為{幸葍}努か 提交于 2020-03-03 05:03:39

发现在多分类问题(这里『多分类』是相对于『二分类』而言的,指的是类别数超过2的分类问题)中,用sklearnmetrics.accuracy_score(y_true, y_pred)float(metrics.f1_score(y_true, y_pred, average="micro"))计算出来的数值永远是一样的,在stackoverflow中搜索这个问题Is F1 micro the same as Accuracy?
也搜到micro F1 score与accuracy数值是相等的,遂证明如下:
定义TP/FP/FN为多分类问题各类的tp/fp/fn之和,三者之间的关系有如下引理(其中ALL是总样本数)。
引理:

FP = FN = F
F + TP = ALL

引理的证明:FPFN恒等性的简单证明:
考虑多分类问题的混淆矩阵,FPFN的值都是混淆矩阵所有非对角线的值求和,只不过FP计算时是先对列求和再对行求和,FN计算时是先对行求和再对列求和。由于FPFN恒等,故可以统一记作F. 而TP是混淆矩阵的对角线和。引理证毕
下面计算micro PrecisionP, micro RecallR, micro F1 score F1:

P = TP / (TP + FP)

R = TP / (TP + FN)

F1 = 2 * P * R / (P + R) 
= 2 * TP / (2 * TP + FP + FN) 
= 2 * TP / (2 * TP + 2 * F) 
= TP / (TP + F) 
= TP / ALL
= acc

其中acc是多分类的accuracy. 证毕

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!