【机器学习300问】31、不平衡数据集如何进行机器学习?

一、什么是不平衡的数据集?

(1)认识不平衡数据

        假如你正在管理一个果园,这个果园里主要有两种水果——苹果和樱桃。如果苹果树有1000棵,而樱桃树只有10棵,那么在收集果园的果实时,你会得到大量的苹果样本,但樱桃样本却极其稀少。这种情况就被称为“不平衡数据集”。

(2)会导致什么问题?

        不平衡数据集会使得模型在训练对多数类偏见,进而忽视少数类的识别。降低了模型在实际应用中的有效性和准确性。

        举例来说明一下它可能造成的问题:

        在信用卡欺诈检测中,欺诈交易的实例可能仅占总交易的一小部分,而非欺诈交易却占了大多数。这种不平衡会导致机器学习模型倾向于更频繁地预测多数类,因为这样可以最大化准确率。但这通常会忽视了少数类的预测,而在很多情况下少数类的预测更加重要,如在欺诈检测、医疗诊断等领域。 

二、如何处理不平衡数据集上的训练问题?

(1)让数据集变平衡

  • 过采样(Over-sampling):对于少数类,我们可以复制一些样本或者生成新的样本,以增加其在数据集中的比例,使之与多数类接近或相等,从而达到平衡。【让少的变多】

        比如,在果园的例子中,我们可以通过某种方式“克隆”樱桃树,使樱桃的数量与苹果相当,这样我们在评估果园总体情况时就不会忽视樱桃的存在。

  • 欠采样(Under-sampling):减少多数类的样本数量,使其与少数类相匹配。但是需要注意,过度的欠采样可能导致多数类的信息丢失,影响模型的泛化能力。【让多的变少】

        同理于果园,如果我们选择去掉一部分苹果树,使得苹果和樱桃的数量相同,这样在分析时就会给予樱桃更多的关注,但同时也可能因为苹果树的减少而丧失部分关于苹果的重要信息。

(2)用精确率和召回率指标评估模型

        关于精确率和召回率的定义,我在之前的文章中写过,还有其他的评价指标的介绍。大家如果忘了精确率和召回率是什么的,可以跳转链接去看看哦!

【机器学习300问】25、常见的模型评估指标有哪些?icon-default.png?t=N7T8http://t.csdnimg.cn/crO6q

  • 精确率(Precision):预测为正例中真正为正例的比例。在果园的例子中,如果我们试图找出所有的樱桃树,精确率就是指我们标记为“樱桃”的果树中,有多少才是真正樱桃树的比例。精确率是衡量模型在预测正类时的准确性指标。【预测正类有多准】

  • 召回率(Recall):所有正例中被正确预测出来的比例。在果园的例子中,如果我们试图找出所有的樱桃树,召回率就是果园中所有真实的樱桃树中有多少被我们成功找了出来。召回率是衡量模型找出正样本的能力。【预测正类有多全】

(3)用精确率和召回率指标评估模型的好处在哪儿呢?

        精确率和召回率作为互补性的评估指标,能够帮助我们从多个维度来评判模型的性能,尤其是在面对类别不平衡问题时,它们为我们提供了更加详尽、深入的模型评估视角。

  • 在处理不平衡数据集时,准确率可能不是一个好的指标,因为它可以通过主要预测多数类来轻易地变高。而精确率和召回率可以提供关于模型对少数类的预测能力更多的信息。        
  • 在很多情境下,我们需要在预测的准确性(不预测错)和完整性(不漏预测)之间做平衡。精确率和召回率帮助我们理解模型在这两个方面的表现如何,以便做出调整。

        

最近更新

  1. TCP协议是安全的吗?

    2024-03-10 20:04:03       17 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-10 20:04:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-10 20:04:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-10 20:04:03       18 阅读

热门阅读

  1. C# Dictionary<string, string> 对key做筛选

    2024-03-10 20:04:03       20 阅读
  2. 【C语言】深入理解指针(扩展)

    2024-03-10 20:04:03       21 阅读
  3. Kafka整理-Consumer Group(消费者群组)

    2024-03-10 20:04:03       23 阅读
  4. anaconda, conda, conda-forge

    2024-03-10 20:04:03       24 阅读
  5. R语言及其开发环境简介

    2024-03-10 20:04:03       19 阅读
  6. C语言知识点总结09-第九章.字符串

    2024-03-10 20:04:03       21 阅读
  7. 一次gitlab 502故障解决过程

    2024-03-10 20:04:03       19 阅读
  8. 蓝桥杯(日期问题纯暴力)

    2024-03-10 20:04:03       20 阅读