什么是 特异度(Specificity)?
特异度(Specificity)是真实负例中被分类器正确预测为负类的比例,公式为 `TN/(TN+FP)`,也称真负率(True Negative Rate)。
快速了解
| 规范文档 | 官方规范 |
|---|
工作原理
定义负类和分母
计算特异度必须声明哪个类别是负类,并且评测集中至少有一个真实负例;TN+FP 为零时结果无定义,不能填成零或一。当前 scikit-learn Recall 语义可通过把负类设为目标标签计算特异度,但报告仍需明确该标签与 zero_division 策略。
评估敏感度与特异度取舍
提高正类阈值通常会减少假正例并提高特异度,同时漏掉更多正例并降低敏感度。最佳操作点取决于误报成本、漏报成本、复核容量和最低安全约束。只有标签、评测人群与阈值完全相同,[假正例率](https://developers.google.com/machine-learning/crash-course/classification/accuracy-precision-recall#false_positive_rate)目标才与特异度目标互为补数。
谨慎使用多分类 One-vs-rest
计算某个类别的多分类特异度时,会把其余所有类别合并为负类。庞大的 Rest 集合可能让指标看起来极高,却掩盖目标类或某一高代价类别对的失败。应发布完整混淆矩阵与逐类结果;基础发生率、标签核验或适格范围变化后,也要重新计算,不能把历史特异度当成模型永久属性。
主要特点
- 计算真负例占全部真实负例的比例
- 在同一评测契约下等于一减假正例率
- 依赖已声明负类和决策阈值
- 评测集中没有真实负例时无定义
- 全部预测为负类的模型也可取得满分
- 需要结合敏感度、计数、不确定性和决策成本解释
常见用途
- 限制正常交易或合法消息被错误拦截
- 控制筛查模型引发的不必要后续检查
- 为安全检测设置最大误报率
- 在有限人工复核容量下比较阈值
- 按部署切片审计负类识别表现
示例
Loading code...常见问题
特异度如何计算?
用真负例除以全部真实负例,即 `TN/(TN+FP)`。结果应同时声明负类、原始计数、阈值、样本权重、结果窗口和不确定性。评测集中没有真实负例时,特异度没有定义。
特异度与精确率有什么区别?
特异度以真实负例为条件,询问其中有多少被正确排除;精确率以预测正例为条件,询问其中有多少是真正例。两者分母不同,而且精确率会直接受到类别基础发生率影响。
特异度与假正例率是什么关系?
在标签、权重、人群和阈值相同的前提下,`Specificity=1-FPR`。特异度报告正确排除的真实负例,FPR 报告被误判为正类的真实负例;混用不同协议的结果后,二者不再能直接互补。
模型特异度很高仍可能没有用吗?
可能。把所有样本都预测为负类不会产生假正例,因此特异度为一,却会漏掉所有正例。必须结合 Recall 或 Sensitivity、Precision、原始告警量和两类错误成本一起判断。
多分类任务怎样使用特异度?
针对一个类别,把它作为正类、其余所有类别作为负类,再计算真负率。应逐类重复并保留完整多分类混淆矩阵,因为庞大的 Rest 集合可能掩盖某一项高代价类别混淆。