「机器学习」数据不平衡情况下的处理方法(1)

1. background

   前端时间想换工作,于是面了几家公司。发现了公司面试基本会问当数据集分布不平衡的时候该怎么处理。在现实做项目的时候这种情况也会很多。于是做了一下整理。


2. 数据不平衡

    数据不平衡的情况主要出现在二分类。比如现在公司做的重要邮件检测。几千个邮件只有几百个重要邮件,其他都是不重要邮件。这样带来的问题是,你想要检测的数量小的损失率带来的整体影响很小。(比如你把所有小类的95%都分错了带来的影响  对于整体来说也可能不大)。所以在评价的时候看着数据很不错,为啥实际应用却检测不出来这样的结果。而且数据量小也就代表信息少,效果不会很好也能预想到。


3. 一般方法

    数据不平衡的解决方法一般分为两种:

        1. 采样法

        2. 惩罚法

    这篇先来介绍一下采样法。


4. 采样法

    采样法有如下几种

        1. 过采样(Oversampling

        2. 欠采样(Undersampling

    4.1 过采样:

            过采样就是把小类数据给扩大,把数据多复制几份之类的。但是显而易见这种做法会明显增加过拟合现象。导致测试集中表现良好,实际中效果很差。觉得比较好的方法使人工制造数据。在一定规律下,自己生成新的小类数据已达到扩充小类数据样本的目的。然而问题是如何制造这些数据,感觉这块学问比较大。此前在邮件分类中自动生成新的重要邮件。然而效果不是特别好,不知道是不是因为本身生成的样本有问题。

    4.2 欠采样:

            欠采样是指把大类样本缩小。可以随机去掉一些数据使得数据集平衡。然而这会使大量信息丢失。大数据大数据肯定数据越多越好,这样做的话感觉很损失。可以采样类似于随机森林一样的做法,随机有放回的生成多个缩小的大类数据,每个小版本大类数据和小类整合成一个新数据集,在各个新数据集中进行分类,使用多数决的方法确定最后结果。(个人感觉这种做法效果应该还好。)

        


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值