小菜鸟对“数据不均衡如何处理?”的认识

注:小众样本☞样本量少的一类;大众样本☞样本量多的一类

       在学术研究时,很多算法都有一个基本假设,那就是数据分布是均匀的。但是当我们把这些算法直接应用到实际问题当中,大多数情况下都无法取得理想的结果,这是由于实际生活中很难遇到数据分布均匀的情况。

处理数据不均衡通常有以下几种方法:

1、重组数据:

①过采样(oversampling):复制小众样本,使它和大众样本差不多数量。

    缺点:数据量大了,训练模型的时间开销多了;并且不能简单地对初始较少类样本进行重复采样,否则会招致严重的过拟合。

②欠采样(undersampling):删除部分大众样本,使它和小众样本数据量一致。

    缺点:随机的丢弃大众样本,可能会丢失一些重要的信息。

2、数据合成(比如SMOTE算法):

Step1:首先确定大众样本是小众样本的几倍(K倍),即:小众样本要生成的数量是现在小众样本数量的多少倍

Step2:对于小众样本中的每一个数据,使用欧式距离找到与其最近的K个同类样本(K近邻问题)

Step3:对于每个小众样本与其K近邻的K个小众样本,我们分别计算其“中间”样例作为新的小众样本,计算公式如下:

                                                                           x_{new} = x+rand(0,1)*(\widetilde{x}-x)

3、修改算法:

       在所有方法中,最具有创造力的方法莫过于修改算法了。若网络中的最后一层使用的是Sigmoid函数,它会有一个预测的门槛,如果低于门槛,预测结果为一类;如果高于门槛,预测结果为另一类。不过现在我们以数据不平衡为训练背景,此时就需要我们调解一下门槛的位置,使得门槛更加偏向于大众样本,这样,只有数据非常准确的情况下,模型才会预测为大众样本。

Eg:我们定义一个网络,想要使用该网络判断给定图片是猫?类还是狗?类。当数据均衡时,我们最后一层可以使用sigmoid激活函数,定义输出值大于0.5时为?,小于等于0.5时为?;当数据不均衡时(假设?图多于?图),我们最后一层可以使用sigmoid激活函数,定义输出大于0.8时为?,小于等于0.8时为?

4、使用其他的机器学习方法:

eg:神经网络对不均衡数据会变得束手无策,但是决策树不会受到不均衡数据的影响。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值