不平衡类的分类报告支持值指示

Posted

技术标签:

【中文标题】不平衡类的分类报告支持值指示【英文标题】:indication of Support value of classification_report for imbalanced class 【发布时间】:2021-03-12 08:09:56 【问题描述】:

我有一个不平衡的数据集,我正在尝试进行二进制分类。我最终使用了几种算法CatBoostClassifierlightgbm 给了我比较好的结果。我有一个关于classification_reportconfusion_matrix 的问题要问。

从我的classification_report 可以看出: -True Negatives: 1076, -False Positives: 0, -False Negatives: 1, -True Positives:6.

Sensitivity : 0.86 和 Specificity 1.00 ,这意味着我的 false positive rate 是 0.0。

我认为它确实表现得非常好。

来自classification_report 是否告诉您我的模型可能过度拟合或确实表现良好?

我问这个是因为1 类的support(数量较少)是7,而0 类的0 是1076。

来自link 它说:“支持是该类中真实响应的样本数。”但我真的不明白这里的意思。 p>

谁能向我解释或让我知道我的算法是否过拟合或表现良好?

标签比例:

0    5550
1      60

分类报告

              precision    recall  f1-score   support

         0.0       1.00      1.00      1.00      1076
         1.0       1.00      0.86      0.92         7

    accuracy                           1.00      1083
   macro avg       1.00      0.93      0.96      1083
weighted avg       1.00      1.00      1.00      1083

混淆矩阵:

[[1076    0]
 [   1    6]]

【问题讨论】:

【参考方案1】:

如果同时查看训练集和测试集的分类报告,您将能够更好地理解事物,仅查看训练集或火车单独设置。但是,如果我们假设您在此处显示的性能指标是针对测试集的,并且训练集中的性能也或多或少与您在测试集中观察到的相似,那么我会说该模型做得很好工作。 1 类的召回率是 86%,因为它仅构成您的数据集的 1%

此外,支持是指属于您的数据集中特定类的示例总数,例如,在您的情况下,对类 0 的支持是 5550,对于类 1 的支持是 60

【讨论】:

感谢您的评论和解释。是的,确实这是来自测试集的分类报告,我刚刚检查了训练集的分类报告。它比测试集更好。所以我会根据你的解释说它确实运作良好。再次感谢! :) 但是如何检查我的模型是否过拟合? 如果训练集的性能远高于您的测试集,那么您的模型可能是过拟合的..

以上是关于不平衡类的分类报告支持值指示的主要内容,如果未能解决你的问题,请参考以下文章

当给定特定类的 0 个样本时,如何对不平衡的数据集进行分类?

如何使用 DecisionTreeClassifier 平衡分类?

不平衡数据集的 Knn 分类器

不平衡二元分类问题的最佳阈值

多类文本分类不平衡,处理类“其他”

非平衡数据(imbalanced data)的简单介绍