首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >balanced_accuracy_score与accuracy_score的区别

balanced_accuracy_score与accuracy_score的区别
EN

Stack Overflow用户
提问于 2019-04-06 11:35:01
回答 2查看 8.2K关注 0票数 5

我在balanced_accuracy_score和accuracy_score中都使用sklearn.metrics。

根据文档,这两个指标是相同的,但在我的代码中,第一个是96%,第二个是97%,而训练的准确率是98%。

你能向我解释一下这三种精确性之间的区别吗?

注意:这个问题是一个有三类的多分类问题.

我附上了代码样本。

精度为98%

代码语言:javascript
复制
model.compile(loss='categorical_crossentropy',
              optimizer=Adam(lr=0.00001),
              metrics=['accuracy'])

精度为96%

代码语言:javascript
复制
from sklearn.metrics import balanced_accuracy_score
balanced_accuracy_score(all_labels, all_predications)

精度为97%

代码语言:javascript
复制
from sklearn.metrics import accuracy_score
accuracy_score(all_labels, all_predications)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-06 15:11:48

就我所理解的问题而言(不知道运行的是什么all_labels、all_predictions),balanced_accuracy_scoreaccuracy_score之间的样本外预测的差异是由前一个函数的平衡造成的。

accuracy_score只返回您正确预测的标签的百分比(即有1000个标签,您准确地预测了980,即得到98%的分数)。

然而,balanced_accuracy_score的工作方式不同,因为它返回每个类的平均精度,这是一个不同的度量。假设你的1000个标签来自两个类别,第1类有750个,第2类有250个。如果你在每班预测10个错误,你的准确率是740/ 750 = 98.7%,在第二类是240/ 250 =96%。然后balanced_accuracy_score将返回(98.7%+96%)/2 = 97.35%。所以我相信这个计划会像预期的那样运作,基于文档。

票数 13
EN

Stack Overflow用户

发布于 2019-12-09 22:29:30

精度= tp+tn/(tp+tn+fp+fn)对于不平衡类不起作用。

因此,我们可以使用平衡精度= TPR+TNR/2。

TPR=真阳性率= tp/(tp+fn):又称“敏感性”

TNR =真阴性rate= tn/(tn+fp):也称为“特异性”

平衡精度几乎与ROC AUC评分结果相同。

链接:

1个recall

2个score

3个score.html

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55548675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档