scikit-learn - 不平衡类的分类报告支持值指示
问题描述
我有一个不平衡的数据集,我正在尝试进行二进制分类。我最终使用了几种算法CatBoostClassifier
,并lightgbm
给了我比较好的结果。我有一个关于classification_report
和 的问题要问confusion_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
是否告诉您我的模型可能过度拟合或确实表现良好?
我问这个是因为support
类1
(数量较少)是 7,而类0
是 1076。
从链接它说:“支持是该类中真实响应的样本数。” 但我真的不明白这里的意思。
任何人都可以向我解释或让我知道我的算法是否过度拟合或表现良好?
标签比例:
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
是86%
因为它仅1%
由您的数据集构成,这一点非常好。
此外,支持是指属于数据集中特定类的示例总数,例如,在您的情况下,对类的支持0
是5550
,对类的支持1
是60
推荐阅读
- python - 你如何在python中的图中绘制峰值
- alexa - 如何正确使用 SSML 向 Alexa 发送时间?
- sql-server - 计算组内的行差异
- reactjs - 使用 Zeit Now 的 Next js + Express 部署问题
- jquery - 基于 CSS3 的滑入式导航
- java - 按下键时以固定速率翻译
- javascript - 三元运算符在反应中无法正常工作
- timeout - SMACK 4.1.1 连接到运行 OpenFire 4.2.3 的 XMPP 服务器 ....客户端连接空闲时间不起作用
- ruby-on-rails - 尝试隐藏 AWS 和 JWT 密钥/秘密时,无法让 Rails 5.2 凭证工作。没有办法获得 Nil
- powershell - 在 PowerShell 中获取进程句柄