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

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

假设有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

在二分类问题中,通常会使用混淆矩阵来辅助计算这些评估指标,混淆矩阵包含四个关键值:真正例(True Positive,TP)、假正例(False Positive,FP)、真反例(True Negative,TN)假反例(False Negative,FN)。 ### Accuracy准确率准确率是指预测正确的样本占总样本的比例,计算公式如下: \[ Accuracy = \frac{TP + TN}{TP + TN + FP + FN} \] 它衡量的是模型在所有样本上的整体预测正确性。 ### Precision(精确率) 精确率是指预测为正例的样本中,实际为正例的比例,计算公式如下: \[ Precision = \frac{TP}{TP + FP} \] 精确率反映了模型预测正例的查准能力。 ### Recall召回率召回率是指实际为正例的样本中,被模型正确预测为正例的比例,计算公式如下: \[ Recall = \frac{TP}{TP + FN} \] 召回率体现了模型对正例的查全能力。 ### F1分数 F1分数是精确率召回率的调平均数,用于综合衡量精确率召回率,计算公式如下: \[ F1 = 2 \times \frac{Precision \times Recall}{Precision + Recall} \] F1分数越接近1,说明模型的性能越好。 在多分类问题中,可以将其拆分成多个二分类问题,分别计算各个类别的精确率召回率,最终求均值作为所有样本的评估指标。 ```python from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score import numpy as np # 示例真实标签预测标签 y_true = np.array([0, 1, 2, 0, 1, 2]) y_pred = np.array([0, 2, 1, 0, 0, 2]) # 计算准确率 accuracy = accuracy_score(y_true, y_pred) # 计算精确率(宏平均) precision = precision_score(y_true, y_pred, average='macro') # 计算召回率(宏平均) recall = recall_score(y_true, y_pred, average='macro') # 计算F1分数(宏平均) f1 = f1_score(y_true, y_pred, average='macro') print(f"Accuracy: {accuracy}") print(f"Precision: {precision}") print(f"Recall: {recall}") print(f"F1 Score: {f1}") ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值