【机器学习】样本不均衡(class-imbalance)——解决方案与问题思考

这篇具有很好参考价值的文章主要介绍了【机器学习】样本不均衡(class-imbalance)——解决方案与问题思考。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题提出

机器学习的老师在一次作业中给出了这几个思考的问题,本文从前两个问题着手,若有不全或者意思错误的地方请向我指出(谢谢!)
【机器学习】样本不均衡(class-imbalance)——解决方案与问题思考


问题重述与再理解

第一个问题:假如样本不均衡,哪种分类器的泛化性能较好?

这个问题也可以拓展为:哪种分类器比较不会受到样本不均衡的影响,或者说得不均衡到哪种程度,会对分类器的影响。

第二个问腿:在样本不均衡的情况下,如何获得更健壮的模型

这个问题也就可以理解为,用什么方法去处理数据集才能让自己的模型尽可能正确分类出少数样本


问题解决方法

样本不均衡对机器学习模型会造成什么影响

样本不均衡带来的根本影响是:模型会学习到训练集中样本比例的这种先验性信息,以致于实际预测时就会对多数类别有侧重(可能导致多数类精度更好,而少数类比较差)


什么模型适合样本不均衡的数据集

  • 根据搜索文章关于这方面的东西很少,得从模型构建的原理角度分析样本不均衡的处理(Xgboost,pytorch及tensorflow)在这篇文章里提到的集成树方法就比较能够适应样本不均衡的数据集

  • 为什么随机森林适合样本不均衡的数据集
    在增强模型中,我们给在每个树迭代中被错误分类的情况更多的权重,所以比其他类型模型的效果更好一些


样本不平衡数据集需要注意的泛化评价指标

众所周知,机器学习的评价指标有:ROC曲线,Acc,recall,精度,f1-score等等,可以看我下面给的这篇文章的标注
评价指标
永远不要使用accuracy(准确率)作为不平衡数据集的指标,由于数据集不平衡,会导致虽然模型的准确率非常高但是无法将小样本的类别成功分类,具有很强的误导性,可以使用AUC-ROC、Recall、F1分数等指标综合看待模型的性能。这里也要注意ROC与recall图像中蕴含的内容,因为我们总是只关注结果数字的变化从而忽略了图表中连续过程蕴含的意义


可以采取什么方法对数据集进行处理

    1. 什么也不做。有时好运就这样降临在你的头上:你什么都不需要做。你可以使用所谓的自然(或分层)分布来进行训练,有时不需任何修改就能正常运行。
    1. 通过某些方法使得数据更加平衡:
    • 对少数类进行过采样(oversampling)
    • 对多数类进行欠采样(undersampling)
    • 合成新的少数类 (SMOTE,ADASYN、SMOTE-Boost、DataBoost-IM等)
    1. 舍弃所有少数类,切换成一个异常检测框架。
    1. 在算法层面之上(或之后):
    • 调整类的权重(错误分类成本)
    • 调整决策阈值
    • 使已有的算法对少数类更加敏感
    1. 构造一个在不平衡数据上表现更好的全新算法。

过采样和欠采样

简单的过采样和欠采样是部分人的首要选择,因为原理很简单。

过采样(oversampling)和欠采样(undersampling)
最简单的方法只需要对处理步骤进行一点点修改,并简单地涉及到调整样本集直到它们达到平衡。过采样会随机复制少数样例以增大它们的规模。欠采样则随机地少采样主要的类。一些数据科学家(天真地)认为过采样更好,因为其会得到更多的数据,而欠采样会将数据丢掉。但请记住复制数据不是没有后果的——因为其会得到复制出来的数据,它就会使变量的方差表面上比实际上更小。而过采样的好处是它也会复制误差的数量:如果一个分类器在原始的少数类数据集上做出了一个错误的负面错误,那么将该数据集复制五次之后,该分类器就会在新的数据集上出现六个错误。相对地,欠采样会让独立变量(independent variable)的方差看起来比其实际的方差更高。深度 | 解决真实世界问题:如何在不平衡类上使用机器学习?
【机器学习】样本不均衡(class-imbalance)——解决方案与问题思考

SMOTE

其思想是通过在已有的样本间插值来创造新的少数类样本。
SMOTE的原理与实现
【机器学习】样本不均衡(class-imbalance)——解决方案与问题思考

SMOTE实现简单,但其弊端也很明显,由于SMOTE对所有少数类样本一视同仁,并未考虑近邻样本的类别信息,往往出现样本混叠现象,导致分类效果不佳。

ADASYN

这个方法是我在kaggle上看到有人用的,从而了解了一下。 ADASYN (adaptive synthetic sampling)自适应合成抽样。ADASYN算法的关键思想是使用密度分布作为准则来自动确定每个少数数据示例需要生成的合成样本的数量,即在少数实例的密度较低的特征空间区域中生成更多的合成实例,而在密度较高的特征空间区域生成较少的合成实例。
不平衡数据处理之SMOTE、Borderline SMOTE和ADASYN详解及Python使用
数据预处理与特征工程—1.不均衡样本集采样—SMOTE算法与ADASYN算法

调整类的权重

许多机器学习工具包都有调整类的「重要性」的方法。比如 Scikit-learn 有许多可以使用可选的 class_weight 参数(可以设置成大于 1)的分类器。这里有一个直接从 scikit-learn 文档中引用的例子,展示了将少数类的权重增加为 10 倍时的效果。
注意点:应该指出的是调整类的重要性通常只能影响类的误差(假阴性(False Negatives),如果少数类是阳性的话)成本。它会调整一个分离的平面并借此降低这些误差。当然,如果该分类器在训练集误差上没有错误,那也就不需要调整,所以调整类权重可能就没有效果。


数据集例子——信用卡诈骗数据集

数据集介绍

数据集链接来自Kaggle的一个关于信用卡检测诈骗的例子。数据集中包含了2013年9月在欧洲的持卡人通过信用卡进行的交易目录。在两天的284807笔交易中,总共有492笔欺诈事件。数据集高度不平衡,正类(欺诈)占所有交易的0.172%。
数据集属性解释如下:
【机器学习】样本不均衡(class-imbalance)——解决方案与问题思考

数据集处理

这一步主要是对数据集里面的几项属性(time和amount)进行处理,这里不赘述,在我的代码里可以看到过程。

数据集所用模型与方法

本人用了6种不同的机器学习模型分别是(KNN,逻辑回归,NB,支持向量机,随机森林,ADAboost)进行训练并比较。并且对每种模型都对五种处理方法进行比较。

可以看到随机森林模型霸占了前四个排名,可以确定随机森林模型是该数据集的最优模型,其次是SVM和ADAboost。横向对比随机森林模型的五种处理方法,通过对recall和f1分数,AUC的指标排序,可以发现通过SMOTE和ADASYN方法后处理的数据集在这三项数值都明显比没有经过处理的数值高,说明我们的方法成功提升了模型在分类少样本的正确率。

【机器学习】样本不均衡(class-imbalance)——解决方案与问题思考
【机器学习】样本不均衡(class-imbalance)——解决方案与问题思考


如果想运行一下本人的代码,已发布在Kaggle上代码链接,这是本人综合了几位大佬的代码做的总结,可能还有一些不完善,其他vote高的代码都可以看看借鉴


总结

启发与思考

  1. 关于样本不平衡这种现象肯定很常见,比如自动驾驶中的事故总比正常驾驶少的多等等,需要不断尝试不同的做法。
  2. 本人的理解还比较局限,目前只针对了信用卡数据集,没有对其他数据集进行一样的操作探讨,并且对深度学习领域的相关问题没有尝试过,未来会尝试在深度学习领域关注样本不均衡问题

参考文章

数据集How to create a meaningful EDA
MIT大佬对怎么处理的理解
数据类别不平衡/长尾分布?不妨利用半监督或自监督学习
非均衡分类问题的性能评价指标
常见分类模型( svm,决策树,贝叶斯等)的优缺点,适用场景以及如何选型?
深度 | 解决真实世界问题:如何在不平衡类上使用机器学习?文章来源地址https://www.toymoban.com/news/detail-401221.html

到了这里,关于【机器学习】样本不均衡(class-imbalance)——解决方案与问题思考的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习中最基本的概念之一:数据集、样本、特征和标签

    数据集、样本、特征和标签是机器学习中的重要概念,这些概念在机器学习算法的设计和实现过程中起着至关重要的作用。在本文中,我们将对这些概念进行详细的讲解,以便更好地理解机器学习算法的基本原理和应用。 数据集是机器学习中最基本的概念之一,它是指一组相

    2024年02月09日
    浏览(27)
  • [网络安全提高篇] 一二二.恶意样本分类之基于API序列和机器学习的恶意家族分类详解

    终于忙完初稿,开心地写一篇博客。 “网络安全提高班”新的100篇文章即将开启,包括Web渗透、内网渗透、靶场搭建、CVE复现、攻击溯源、实战及CTF总结,它将更加聚焦,更加深入,也是作者的慢慢成长史。换专业确实挺难的,Web渗透也是块硬骨头,但我也试试,看看自己未

    2024年02月12日
    浏览(50)
  • R语言画样本不均衡组的箱线图

     

    2024年02月11日
    浏览(23)
  • 机器学习(10) 逻辑回归:多元分类(Multi-class classification)

    对于数据集中存在多个类别的分类问题,我们可以采用一种叫做 One-vs-rest 的方法,将其转化成二元分类的问题,然后再进行解决。 前面的是对于二元分类问题,应该如何去处理其预测函数、代价函数和梯度下降算法。 但是多元的分类才是生活常见的情况。 例如对于邮件,我

    2024年02月02日
    浏览(38)
  • 机器学习 不均衡数据采样方法:imblearn 库的使用

    ✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 imblearn (全名为 imbalanced-learn )是一个用于处

    2024年02月07日
    浏览(30)
  • 机器学习19:多类别神经网络-Multi-Class Neural Networks

    在【 机器学习12:分类 Classification 】一文中,笔者介绍了二元分类模型,它可以在两个可能的选择之一之间进行选择,例如: 电子邮件是垃圾邮件还是非垃圾邮件。 肿瘤是恶性的或良性的。 在本文中,我们将研究 多类 分类,它可以从多种可能性中进行选择。例如: 这只狗

    2024年02月12日
    浏览(29)
  • 机器学习案例:运营商客户流失的数据分析 #数据去重#数据分组整合#缺失值处理#相关性分析#样本平衡#决策树、随机森林、逻辑回归

    前提: 随着业务快速发展、电信市场的竞争愈演愈烈。如何最大程度地挽留在网用户、吸取新客户,是电信企业最 关注的问题之一。 客户流失 会给企业带来一系列损失,故在发展用户每月增加的同时,如何挽留和争取更多 的用户,也是一项非常重要的工作。 能否利用大数

    2024年02月08日
    浏览(37)
  • 机器学习多步时间序列预测解决方案

    近年来,随着机器学习与深度学习的发展机器学习平台的成熟,数据科学家们不再需要关心底层的基础设施及构建复杂的训练与推理环境,从而可以把主要的时间与精力放在数据与算法本身。在机器学习变得更容易的今天,越来越多的传统行业已经开始使用机器学习算法来解

    2024年02月10日
    浏览(38)
  • ClearML入门:简化机器学习解决方案的开发和管理

    ClearML 是一个开源平台(之前叫TRAINS),可为全球数千个数据科学团队自动化并简化机器学习解决方案的开发和管理。它被设计为端到端的MLOps套件,允许您专注于开发ML代码和自动化,而ClearML确保您的工作可重复和可扩展。 仅用 2 行代码跟踪和上传指标和模型 创建一个机器

    2024年02月04日
    浏览(28)
  • 机器学习之样本及统计量

    在数理统计中,称研究对象的全体为总体,组成总体的每个基本单元叫个体。从总体X中随机抽取一部分个体 X 1 , X 2 , . . . , X N X_1,X_2,...,X_N X 1 ​ , X 2 ​ , ... , X N ​ 称 X 1 , X 2 , . . . , X N X_1,X_2,...,X_N X 1 ​ , X 2 ​ , ... , X N ​ 为取自X的容量为 n的样本 。 实际上,数理统计学中

    2024年01月18日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包