一文读懂xgboost,lightgbm分类评价指标precison/recall/TP/FP/TN/FN与阈值threshold的选取

本文深入解析分类评价指标,包括TP, FP, FN, TN, Confusion Matrix, TPR, FPR, Precision, Recall, ROC曲线和AUC。以xgboost和lightgbm为例,探讨如何根据业务需求选择合适的阈值threshold。" 116067505,9715665,使用Chrome性能分析工具提升前端性能,"['前端开发', 'JavaScript', 'Chrome工具', '性能优化', '网页性能']

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

分类的评价指标主要有F-score(F-measure), recall, precision,ROC曲线,AUC曲线.其中涉及到混淆矩阵(confusion matrix), TN, TP, FN, FP.
事实上,这适用于所有的分类模型,并不局限于xgb,lgb。只是这两种模型分类效果尤为显著,因此本文以lgb作二分类为例,来应用这些评价指标,与展示threshold如何选取。

为了方便理解,我画了一张图:
在这里插入图片描述
可以看出所有的指标,都是基于TP,FP,FN,TN计算公式的来。因此我们从底层开始理解,先需理解这四个就游刃有余了。(图中未提到的ROC曲线与AUC在后面。)

TP,FP,FN,TN & Confusion Matrix

在这里插入图片描述

前面的True/False修饰后面的Positive/Negative,后面的Positive/Negative是我们的方法的判断。
TP (true positive):我们的方法判断为真,这个判断是对的。即事实上为真,而且被我们的方法判断为真的情形。
FN (false negative):我们的方法判断为不真,这个判断是错的。即事实上为真,却未被我们的方法判断为不真的情形。
FP (false positive):我们的方法判断为真,这个判断是错的。即事实上不为真,却被我们的方法误判为真的情形。
TN (true negative):我们的方法判断为不真,这个判断是对的。即事实上不为真,而且被我们的方法判断成不为真的情形。
在这里插入图片描述

于此之外,还引申出许多其他的指标:
在这里插入图片描述
此处挑两个比较常用的(后面的ROC会用到)了解:

TPR & FPR

在这里插入图片描述
TPR(真阳性率)
FPR(伪阳性率)

Precision & Recall

这里是引用
Precision,说白了,就是你的模型分类的准确性、精确度,即模型预测为真的里面,确实预测对的几个。
Precision的分母为两种判断为真的情形的总和。
解释:当辨识结果为FP的代价很高时,F-score应该着重此指标,亦即precision要很高。
例子:辨识电邮信箱里的垃圾邮件时,如果某封被误判成垃圾邮件(即FP)时,使用者可能就此错过重要的通知。


Recall,召回, 说白了,即 事实上是真的里面,模型预测对了几个
Recall的分母为事实上为真的情形的总和
解释:当辨识结果为FN的代价很高时,F-score应该着重此指标,亦即precall要很高。
举例:一个传染病诊断辨识系统中,如果某个传染病患者被误判成阴性(即FN),当地的社区的居民就落入被传染的高风险之中。
举例:真正犯罪的人当中,有多少比例的罪犯被抓到。或,一张照片当中,有多少人脸被侦测到。

通过以上的概念与解释,我们可以看出precision与recall是进行权衡的,F-而这种关系可以通过 β 调整更重视的部分。因此我们后面在选择threshold的时候,也需要根据实际的业务需求,通过更看重哪一部分,从而选择出需要的threshold.
在这里插入图片描述
以上面为例,那么如果警局倡导的是,尽量不要冤枉平民&#x

Lufficc/SSD (Single Shot MultiBox Detector) 是基于PyTorch的一个目标检测模型,它通常用于评估其性能时会用到精度 Precision 和召回Recall。这两个指标在二分类和多类别场景中都非常重要,它们衡量了模型预测结果的质量。 **Precision (精确度)**: Precision 表示模型预测为正类(比如目标物体)的结果中有多少是真正正确的。计算公式通常是 TP / (TP + FP),其中 TP 是真正例(True Positive,即预测为正且实际为正),FP 是假正例(False Positive,即预测为正但实际为负)。 **Recall (召回率)**: Recall 则表示模型能够正确识别出所有正类的比例。它是 TP / (TP + FN),其中 TP 是真正例,FN 是假负例(False Negative,即实际为正但预测为负)。 在 PyTorch 中,为了计算 SSD 模型的 Precision 和 Recall,通常需要先运行模型对数据集进行预测,然后使用混淆矩阵(confusion matrix)来统计真正例、假正例、假负例和真负例的数量。可以使用 scikit-learn 或者 PyTorch 的一些工具库(如 ignite.metrics)来计算这些指标。 ```python from sklearn.metrics import precision_score, recall_score import torch # 假设y_true是真实标签,y_pred是模型预测 y_true = ... # 预测后的ground truth labels y_pred = ... # 预测的概率或类别 # 如果是概率预测,则选择阈值决定正负类别 threshold = 0.5 y_pred_binary = (y_pred > threshold).float() # 计算 Precision 和 Recall precision = precision_score(y_true, y_pred_binary) recall = recall_score(y_true, y_pred_binary) print(f"Precision: {precision}") print(f"Recall: {recall}") # 或者使用 ignite.metrics from ignite.metrics import Precision, Recall metrics = {'Precision': Precision(average='binary'), 'Recall': Recall(average='binary')} for name, metric in metrics.items(): metric.update((y_true, y_pred)) results = {name: metric.compute() for name, metric in metrics.items()} ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值