类别不平衡评估指标
时间: 2025-07-09 15:38:48 浏览: 14
### 类别不平衡问题中的评估指标
在类别不平衡问题中,传统的准确率和错误率可能无法有效反映模型的真实性能。因此,在这种场景下通常会采用其他更合适的评估指标来衡量分类器的表现。
#### 常见的评估指标
以下是几种常用的针对类别不平衡问题的评估指标:
1. **精确率(Precision)**
精确率是指被预测为正类的样本中有多少比例实际上是正类。其计算公式如下:
\[
Precision = \frac{TP}{TP + FP}
\]
这里 \( TP \) 表示真正例数,\( FP \) 表示假正例数[^3]。
2. **召回率(Recall)**
召回率表示实际为正类的样本中有多少比例被正确识别出来。其计算公式如下:
\[
Recall = \frac{TP}{TP + FN}
\]
其中 \( FN \) 是指假负例数。
3. **F1 分数(F1 Score)**
F1 分数是精确率和召回率的调和平均值,综合考虑了两者的影响。它适用于需要平衡精确率和召回率的情况。其定义为:
\[
F1 = 2 \cdot \frac{Precision \cdot Recall}{Precision + Recall}
\][^3]
4. **AUC-ROC 曲线下的面积(Area Under Curve of Receiver Operating Characteristic, AUC-ROC)**
ROC曲线描绘的是不同阈值下真阳性率(True Positive Rate, TPR)与假阳性率(False Positive Rate, FPR)之间的关系。AUC则量化了这一曲线下方的面积,取值范围从0到1,越接近1说明模型区分能力越好。
5. **G-Mean(几何均值)**
G-Mean是对敏感性和特异性的一种折衷度量方式,尤其当面对高度偏斜的数据分布时非常有用。它的表达式为:
\[
G\text{-}Mean = \sqrt{\left( \frac{TP}{TP+FN}\right)\left(\frac{TN}{FP+TN}\right)}
\][^4]
6. **Kappa 统计量(Cohen's Kappa Coefficient)**
Kappa统计量用来测量两个观察者之间的一致性程度,超出偶然一致性的部分被认为是显著的。对于机器学习而言,则可以看作模型预测结果相对于随机猜测的优势大小。
7. **Log Loss 或 Cross Entropy Loss**
Log损失函数也叫交叉熵损失,主要用于评价概率估计的质量。较低的日志损失意味着较高的置信水平以及较好的分类准确性。
8. **Balanced Accuracy**
平衡精度通过分别计算每种类别的准确率再求平均值得出,特别适合解决极度失衡情况下的表现评估需求。
```python
from sklearn.metrics import precision_score, recall_score, f1_score, roc_auc_score
# 示例代码展示如何使用上述几个重要指标进行评分
y_true = [0, 1, 0, 1, 0, 1, 1, 0]
y_pred = [0, 1, 0, 0, 0, 1, 1, 1]
precision = precision_score(y_true, y_pred)
recall = recall_score(y_true, y_pred)
f1 = f1_score(y_true, y_pred)
print(f'Precision: {precision}')
print(f'Recall: {recall}')
print(f'F1-Score: {f1}')
if len(set(y_true)) == 2 and all(isinstance(i, int) for i in y_pred):
auc_roc = roc_auc_score(y_true, y_pred)
print(f'AUC-ROC: {auc_roc}')
```
阅读全文
相关推荐


















