推荐阅读时间:5min~12min

主要内容:机器学习中样本比例不平衡的处理方法

在机器学习中,常常会遇到样本比例不平衡的问题,如对于一个二分类问题,正负样本的比例是 10:1。

这种现象往往是由于本身数据来源决定的,如信用卡的征信问题中往往就是正样本居多。样本比例不平衡往往会带来不少问题,但是实际获取的数据又往往是不平衡的,因此本文主要讨论面对样本不平衡时的解决方法。

样本不平衡往往会导致模型对样本数较多的分类造成过拟合,即总是将样本分到了样本数较多的分类中;除此之外,一个典型的问题就是 Accuracy Paradox,这个问题指的是模型的对样本预测的准确率很高,但是模型的泛化能力差。

其原因是模型将大多数的样本都归类为样本数较多的那一类,如下所示

准确率为

而假如将所有的样本都归为预测为负样本,准确率会进一步上升,但是这样的模型显然是不好的,实际上,模型已经对这个不平衡的样本过拟合了。

针对样本的不平衡问题,有以下几种常见的解决思路

  1. 搜集更多的数据

  2. 改变评判指标

  3. 对数据进行采样

  4. 合成样本

  5. 改变样本权重

1
搜集更多的数据

搜集更多的数据,从而让正负样本的比例平衡,这种方法往往是最被忽视的方法,然而实际上,当搜集数据的代价不大时,这种方法是最有效的。

但是需要注意,当搜集数据的场景本来产生数据的比例就是不平衡时,这种方法并不能解决数据比例不平衡问题。

2
 改变评判指标

改变评判指标,也就是不用准确率来评判和选择模型,原因就是我们上面提到的 Accuracy Paradox 问题。实际上有一些评判指标就是专门解决样本不平衡时的评判问题的,如准确率,召回率,F1值,ROC(AUC),Kappa 等。

根据这篇文章,ROC 曲线具有不随样本比例而改变的良好性质,因此能够在样本比例不平衡的情况下较好地反映出分类器的优劣。

关于评判指标更详细的内容可参考文章: Classification Accuracy is Not Enough: More Performance Measures You Can Use

3
对数据进行采样

对数据采样可以有针对性地改变数据中样本的比例,采样一般有两种方式:over-sampling和 under-sampling,前者是增加样本数较少的样本,其方式是直接复制原来的样本,而后者是减少样本数较多的样本,其方式是丢弃这些多余的样本。

通常来说,当总样本数目较多的时候考虑 under-sampling,而样本数数目较少的时候考虑 over-sampling。

关于数据采样更详细的内容可参考 Oversampling and undersampling in data analysis

4
合成样本

合成样本(Synthetic Samples)是为了增加样本数目较少的那一类的样本,合成指的是通过组合已有的样本的各个 feature 从而产生新的样本。

一种最简单的方法就是从各个 feature 中随机选出一个已有值,然后拼接成一个新的样本,这种方法增加了样本数目较少的类别的样本数,作用与上面提到的 over-sampling方法一样,不同点在于上面的方法是单纯的复制样本,而这里则是拼接得到新的样本。

这类方法中的具有代表性的方法是 SMOTE(Synthetic Minority Over-sampling Technique),这个方法通过在相似样本中进行 feature 的随机选择并拼接出新的样本。

关于 SMOTE 更详细的信息可参考论文 SMOTE: Synthetic Minority Over-sampling Technique

5
改变样本权重

改变样本权重指的是增大样本数较少类别的样本的权重,当这样的样本被误分时,其损失值要乘上相应的权重,从而让分类器更加关注这一类数目较少的样本。

参考:

更多文章请访问:http://wulc.me/

8 Tactics to Combat Imbalanced Classes in Your Machine Learning Dataset

In classification, how do you handle an unbalanced training set?

【干货】机器学习中样本比例不平衡的处理方法相关推荐

  1. 干货︱机器学习中防止过拟合的处理方法

    我们都知道,在进行数据挖掘或者机器学习模型建立的时候,因为在统计学习中,假设数据满足独立同分布(i.i.d,independently and identically distributed),即当前 ...

  2. 机器学习中的数据不平衡问题----通过随机采样比例大的类别使得训练集中大类的个数与小类相当,或者模型中加入惩罚项...

    机器学习中的数据不平衡问题 摘自:http://wap.sciencenet.cn/blogview.aspx?id=377102 最近碰到一个问题,其中的阳性数据比阴性数据少很多,这样的数据集在进行 ...

  3. 【机器学习】机器学习中样本不平衡,怎么办?

    在银行要判断一个"新客户是否会违约",通常不违约的人VS违约的人会是99:1的比例,真正违约的人 其实是非常少的.这种分类状况下,即便模型什么也不做,全把所有人都当成不会违约的人, ...

  4. 机器学习中样本不平衡,怎么办?

    在银行要判断一个"新客户是否会违约",通常不违约的人VS违约的人会是99:1的比例,真正违约的人 其实是非常少的.这种分类状况下,即便模型什么也不做,全把所有人都当成不会违约的人, ...

  5. 使用合成数据改善机器学习中的极度不平衡数据集

    这是我的推广信息,以激励自己更好的分享自己的知识和经验!也希望看到的你能够多多支持,谢谢! 1. 滴滴云AI大师: 目前滴滴云正在大力推广自己的云计算服务,需要购买的朋友们用我的AI大师码 「2049 ...

  6. 机器学习中常见的过拟合解决方法

    机器学习中常见的过拟合解决方法 参考文章: (1)机器学习中常见的过拟合解决方法 (2)https://www.cnblogs.com/jiangxinyang/p/9281107.html 备忘一下 ...

  7. 机器学习中处理缺失值的7种方法

    机器学习中处理缺失值的7种方法 转载 |  https://cloud.tencent.com/developer/article/1680427 作者 | Satyam Kumar 编译 | VK ...

  8. 机器学习中样本的样本量的估计

    在机器学习中,如果样本量不足,我们利用模型学习到的结果就有可能是错误的,因为样本不足的情况下,规则会有很多.也就是我们如果用f表示真是的规则,用g表示利用模型学习到的规则.那么我们希望g和f越接近越好 ...

  9. 机器学习中样本的样本量的估计(VC维)

    转自:http://blog.csdn.net/uestc_c2_403/article/details/72859021 在机器学习中,如果样本量不足,我们利用模型学习到的结果就有可能是错误的,因为 ...

最新文章

  1. 移植根文件系统到linux内核 s3c2440,u-boot-2011.06在基于s3c2440开发板的移植之引导内核与加载根文件系统...
  2. Execution Order of Event Functions, unity 3d 事件函数的执行顺序
  3. 全局变量求平均分最高分最低分_想去江苏读大学,2021届山东考生需要多少分?...
  4. FreeRTOS任务通知
  5. 素材 | 3D立体设定数据多彩数据统计图元素PSD模板
  6. oracle静态,oracle静态sql和动态sql
  7. 在Windows下启动java服务
  8. 三分钟入门电力系统之----------三道防线
  9. 英文文献pdf转成中文
  10. DOM是什么?(超详细解释)
  11. 学习微服务最好的方式:阅读《微服务架构设计模式》
  12. [HDOJ 4889] Scary Path Finding Algorithm [SPFA]
  13. 洛谷——P1348 Couple number(java实现)
  14. LC振荡电路以及考虑寄生参数时MOS管开通关断分析
  15. 绿联扩展坞拆解_我们拆了绿联这款USB
  16. vue 上次登录时间_Vue设置长时间未操作登录自动到期返回登录页
  17. 米家车载空气净化器拆解报告
  18. 解决ROS包校验不符问题,国内易科ros源
  19. 千兆网口 Freescale ETSEC + Marvell 88E1111 uboot Linux 驱动分析
  20. python 面试题 aac caa相似_经典面试题:最长回文子串

热门文章

  1. [译文] C# 8 已成旧闻, 向前, 抵达 C# 9!
  2. 在.NET Core下的机器学习--学习笔记
  3. .NET Core 3.0稳定版发布
  4. gRPC in ASP.NET Core 3.0 -- 前言
  5. .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  6. 微服务介绍及Asp.net Core实战项目系列之微服务介绍
  7. SQL Server 审计
  8. 腾讯云短信服务使用记录与.NET Core C#代码分享
  9. C#使用Xamarin开发可移植移动应用(2.Xamarin.Forms布局,本篇很长,注意)附源码
  10. 基于C#.NET的高端智能化网络爬虫