我做了一些机器学习实验来预测二进制分类。我测量了精度、召回率和准确性。
我注意到我的准确率通常很高,召回率和准确率总是相同的数字。
我使用了以下定义:
我在解释准确性和召回率方面有一些困难。如果这两个数字在我的情况下始终相同,这意味着什么?
我做了一些机器学习实验来预测二进制分类。我测量了精度、召回率和准确性。
我注意到我的准确率通常很高,召回率和准确率总是相同的数字。
我使用了以下定义:
我在解释准确性和召回率方面有一些困难。如果这两个数字在我的情况下始终相同,这意味着什么?
我怀疑您正在测量您的两个班级的精确度、召回率和准确度的微观平均值。如果您这样做而不是考虑一类“正”和另一类“负”,那么您将始终获得相同的召回率和准确率值,因为 FP 和 FN 的值将始终相同(您可以检查更多细节在这里: http: //metaoptimize.com/qa/questions/8284/does-precision-equal-to-recall-for-micro-averaging)
这可能是一个巧合。
如果我们必须对此说些什么,那么它表明敏感性(又名召回,或 TPR)等于特异性(又名选择性,或 TNR),因此它们也等于准确性。TP / P = TN / N = (TP+TN) / (P+N),其中 P = TP+FN,N = TN+FP。
这意味着您的模型在某种程度上是“平衡的”,也就是说,它正确分类正样本的能力与其正确分类负样本的能力相同。
但是,敏感性和特异性的重要性可能因情况而异,因此“平衡”不一定是好的。
正如OP所提到的,这只是一个巧合。每个类中的实例数量很可能是平衡的。召回 = TP/P 和 Acc = (TP + TN)/(P+N),所以在你的情况下 TP/P = TN/N。这可能发生,并且更有可能发生在 |P| 时。= |N|
尝试以下操作:打印最多 7-8 位小数,您可能会看到一些差异。
二是尝试不平衡的问题。就像将正类设置为总数的 20%,让休息为 80%,你肯定会看到差异。
这意味着 TN 和 FP 接近于 0。
因此,精度接近TP/TP=1。
召回公式不会改变,因为 TP 和 FN 都不接近 0。
(TP+TN)/(TP+TN+FP+FN)的准确率接近召回率的TP/(TP+FN)。
使 TN 和 FP 接近 0 意味着您有一个不平衡的数据集,与正负的标准相比,它具有反向不平衡。在使用精确度和召回率时,很少有正面的,而负面的很少是标准的。
通常,人们使用精确度和召回率,因为 TN 非常常见(并且使准确度非常高)并且您不太关心它。在您的情况下,TP 很常见,TN 很少见。