我在balanced_accuracy_score和accuracy_score中都使用sklearn.metrics。
根据文档,这两个指标是相同的,但在我的代码中,第一个是96%,第二个是97%,而训练的准确率是98%。
你能向我解释一下这三种精确性之间的区别吗?
注意:这个问题是一个有三类的多分类问题.
我附上了代码样本。
精度为98%
model.compile(loss='categorical_crossentropy',
optimizer=Adam(lr=0.00001),
metrics=['accuracy'])精度为96%
from sklearn.metrics import balanced_accuracy_score
balanced_accuracy_score(all_labels, all_predications)精度为97%
from sklearn.metrics import accuracy_score
accuracy_score(all_labels, all_predications)发布于 2019-04-06 15:11:48
就我所理解的问题而言(不知道运行的是什么all_labels、all_predictions),balanced_accuracy_score和accuracy_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%。所以我相信这个计划会像预期的那样运作,基于文档。
https://stackoverflow.com/questions/55548675
复制相似问题