python-使用SMOTE时验证集性能不佳
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-使用SMOTE时验证集性能不佳,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1560字,纯文字阅读大概需要3分钟。
内容图文
![python-使用SMOTE时验证集性能不佳](/upload/InfoBanner/zyjiaocheng/677/2d6b4ce117e04d75ad071000fff1c756.jpg)
我想用2个类别进行分类.
当我没有SMOTE进行分类时,我得到(交叉验证的10倍平均值):
Precision Recall f-1
0,640950987 0,815410434 0,714925374
当我使用smote时:(在200%且k = 5时对少数类进行了过度采样)(也是10次交叉验证),这意味着我的测试和训练集中存在综合数据.
Precision Recall f-1
0,831024643 0,783434343 0,804894232
如您所见,这很好.
但是,当我在验证数据(没有任何综合数据,也没有用于构造综合数据点)上测试此训练好的模型时,
Precision Recall f-1
0,644335755 0,799044453 0,709791138
太可怕了我使用随机决策森林进行分类.
有谁知道为什么会这样&解决此问题的解决方案?任何有关额外测试的有用技巧,我都可以尝试以获取更多见解,也欢迎您.
更多信息:我不会碰多数派.我使用scikit-learn和this algorithm for SMOTE在Python中工作.
测试数据(具有综合数据)上的混淆矩阵:
验证集中的混淆矩阵(既没有任何综合数据,也没有被用作创建综合数据的基础):
编辑:我读到问题可能在于创建了Tomek Links.因此为I wrote some code to remove the Tomek links.尽管这不能提高分类分数.
Edit2:我读到问题可能在于存在太多重叠的事实.一种解决方案是更智能的合成样本生成算法.因此我实现了
ADASYN: Adaptive Synthetic Sampling Approach for Imbalanced Learning
.可以找到我的实现here.它的性能比冒充还差.
解决方法:
重叠可能是原因.如果在给定变量的情况下类之间存在重叠,则SMOTE将生成影响可分离性的综合点.正如您所指出的,可能会生成Tomek链接以及其他损害分类的点.我建议您尝试使用SMOTE的其他变体,例如Safe-SMOTE或Bordeline-SMOTE.您可以在以下位置找到他们的描述:
http://link.springer.com/chapter/10.1007/11538059_91
http://link.springer.com/chapter/10.1007/978-3-642-01307-2_43
内容总结
以上是互联网集市为您收集整理的python-使用SMOTE时验证集性能不佳全部内容,希望文章能够帮你解决python-使用SMOTE时验证集性能不佳所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。