关于准确率accuracy和召回率recall的理解

本文介绍了在100个样本中,机器学习模型如何预测正负样本的情况。70个正样本中,模型正确预测了50个(TP),错误预测了20个(FN)。30个负样本中,模型错误预测了10个为正(FP),正确预测了20个为负(TN)。准确率accuracy基于模型的正样本预测,而召回率recall则关注实际正样本的预测情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假设有100个样本,其中正样本70,负样本30,这个是由数据集本身决定的,机器要做的就是判别这100个样本中哪几个样本是正样本,哪几个样本是负样本。

现在机器做出了预测:
机器把原样本中70个正样本中的50个判为正,记为TP=50(True Positive,机器判断正确的正样本);
机器把原样本中70个正样本中的20个判为负,记为FN=50(False Negative,机器判断错误,认为该样本是负样本,但它是正样本。可以理解为“机器错误的认为它是负样本,负负得正所以它本来的面目应该是正样本”);
机器把原样本中30个负样本中的10个判为正,记为FP=10(False Positive,机器判断错误,认为该样本是正样本,但它是负样本。可以理解为“机器错误的认为它是正样本,那它本来的面目是负样本”);
机器把原样本中30个负样本中的20个判为负,记为TN=20(True Negative,机器判断正确的负样本);

accuracy=TPTP+FPaccuracy=\frac{TP}{TP + FP}accu

### 准确率召回率的定义与计算方法 #### 准确率 准确率Accuracy)用于衡量分类模型预测正确的比例。它表示在整个数据集中,模型正确分类样本的比例。其公式如下: \[ \text{Accuracy} = \frac{\text{TP} + \text{TN}}{\text{TP} + \text{TN} + \text{FP} + \text{FN}} \] 其中: - TP(True Positive):正类被正确预测为正类的数量; - TN(True Negative):负类被正确预测为负类的数量; - FP(False Positive):负类被错误预测为正类的数量; - FN(False Negative):正类被错误预测为负类的数量。 通过该公式可以得出整个分类系统的整体性能表现[^1]。 #### 召回率 召回率Recall),也被称为灵敏度(Sensitivity)。它是针对某一类别而言,描述的是实际属于这一类别的样本中有多少被成功检测出来。其公式如下: \[ \text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}} \] 这表明,在所有真实为正类的样本中,有多少比例被模型识别并标记为了正类。高召回率意味着较少的真实正类会被漏检。 ```python def calculate_accuracy(tp, tn, fp, fn): accuracy = (tp + tn) / (tp + tn + fp + fn) return accuracy def calculate_recall(tp, fn): recall = tp / (tp + fn) return recall ``` 以上代码展示了如何基于混淆矩阵中的四个基本指标来分别计算准确率召回率。 #### F值 除了单独考虑准确率召回率外,通常还会综合两者的表现,引入F值作为评价标准之一。最常见的形式是F1分数,它的计算方式如下所示: \[ F_1 = 2 \cdot \frac{\text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}} \] 这里 Precision 表示精确率,即预测为正类的样本中实际为正类的比例;而 Recall 则是我们之前提到过的召回率
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值