【发布时间】:2022-12-17 03:31:59
【问题描述】:
我想了解 scikit-learn 的记起和精确工作。这是documentation。
因此,精度公式为:tp / (tp + fp) 和召回公式:tp / (tp + fn)。 tp = 真阳性,fp = 假阳性,fn = 假阴性。
让我们用一个例子来说明这一点:99 名患者健康,1 名患者生病。
示例 1:分类器决定 100 名患者中的每个人都是健康的。在这种情况下:
精度:99 / (99 + 1) = 0,9
召回:99 / (99 + 0) = 1
示例 2:100 名患者中的每一名都被归类为患病:
精度:0 / (0 + 0) = n.d.
回忆:0 / (0 + 99) = 0
我在这个 book 中找到了关于精度和召回率的另一种解释:
精度是模型报告的正确检测的比例,而召回是检测到的真实事件的比例。一个说没有人患有这种疾病的检测器将实现完美的精确度,但召回率为零。
示例 1 就是这种情况,对吗?没有人得病,说明大家都健康。完美的精度意味着 1,但在我的计算中它是 0.9。错误在哪里?还有为什么0召回?
一个说每个人都患有这种疾病的检测器将实现完美的召回,但精确度等于患有这种疾病的人的百分比(在我们的示例中,只有百万分之一的人患有这种疾病,精度为 0.0001%)。
这是示例 2:每个人都生病了。 precision 怎么能有除 undefined 以外的其他值呢?我计算的recall是0,这个例子怎么会是1呢?
【问题讨论】:
标签: python machine-learning scikit-learn deep-learning