数据不均衡往往可以导致一些问题,比如对一个两类分类问题,如果训练集中的正负样本比例为99:1,那么直接将所有样本都分为正样本,模型的准确度也可以达到99%。准确度通常是我们衡量一个模型性能的基本指标(starting point),但是它有时候并不客观(misleading),这个可以参考accuracy paradox。但其实这个训练的模型并没有什么用。那么在训练集中数据不均衡的条件下,如果避免训练的模型对于某一类出现过拟合的现象呢?
1.收集更多数据:
这个方法经常被忽略。事实上,如果可以收集到更多数据,那么它从两个方面来讲是有效的:首先大的数据集或许类别之间更加均衡;另外收集更多数据那么较少类里面的数据也会更多,这个在后面的策略里面会很有用。
2.改变使用的性能评价标准:
正如前面提到的accuracy paradox,简单的通过准确度来衡量模型的性能并不是客观的。这里还有其他可以用来衡量模型性能的指标,最常见的包括Precision(TP/TP+FP),Recall(TP/TP+FN),precision可以衡量模型对正样本识别的准确度,recall则可以衡量对正样本识别的完整性。F1-score指标是基于precision和recall,取二者的调和平均数。另外还有ROC曲线,ROC曲线涉及到两个指标:sensitivity(TP/TP+FN)和specificity(TN/TN+FP)。可以看出,这两个指标中sensitivity实际上跟recall是一致的,衡量模型对正样本的检测能力,specificity则是衡量模型对负样本的检测能力。在ROC曲线中,纵坐标是sensitivity,横坐标是1-specificity。如果一个模型的ROC曲线越贴近Y轴,那么它的性能越好,而越靠近斜率为1的直线,分类能力越差。具体的解释可以参考ROC curve.另外,也可以修改accuracy的计算方式0.5*(sensitivity+specificity)。这样就避免了偏向于某一类样本。
3.重采样(resampling):
重采样就是重新调整你所用的数据集,一般分为两种方式:
上采样(oversampling):复制观测值少的类的样本;数据少的时候常使用这个。
下采样(undersampling):删除观测值多的类的样本;数据多的时候常使用这个。
通常而言,这两种方式简单易行,所以可以都进行尝试比较两者的性能。采样的时候可以考虑random 或者non-random的方式,以及使用不同的重采样比例。
4.生成合成样本:
与resampling 的方式不同,这里不是复制样本,而是通过算法生成合成的样本。比较著名的算法是SMOTE:Synthetic minority over sampling techniques.它的基本方法是首先通过距离度量选择两个或多个比较相近的样本,然后通过在一个样本中添加随机扰动来生成新的样本,当然要求这个随机扰动必须在相邻实例的差异之间。
5.使用不同的算法:
不要在所有问题上使用同一个算法。
6.使用带惩罚的模型(penalized model):
可以为每类给定一个权重。比如通过给观测值少的类较大的代价。常见的比如penalized-SVM或者penalized-LDA。

另外作者还推荐一个很赞的答案:
In classification, how do you handle an unbalanced training set?
总结:
方法很多,最重要的在于开始做,从小的地方着手,然后不断尝试。

reference:
[1]http://machinelearningmastery.com/tactics-to-combat-imbalanced-classes-in-your-machine-learning-dataset/

处理数据不均衡的策略相关推荐

  1. 矢量切片_数据粒度均衡的二维矢量瓦片构建方法

    作 者 信 息 应 申1,2,王子豪1,杜志强3,丁火平4, 李翔翔4 (1. 武汉大学 资源与环境科学学院,湖北 武汉 430079:2. 自然资源部城市国土资源监测与仿真重点实验室,广东 深圳 5 ...

  2. 负载均衡—算法/策略

    负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用性. 一.四层负载均衡 vs 七层负载均衡 四层负载均 ...

  3. Nginx系列之负载均衡算法策略

    负载均衡实际上是一种网络技术,主要是基于现有的网络结构,增加吞吐量.加强网络数据处理能力.提高应用系统的灵活和可用性.利用Nginx可实现负载均衡,Nginx支持加权Round-Robin负载均衡算法 ...

  4. 再议《反驳 吕震宇的“小议数据库主键选取策略(原创)” 》

    前天发表了篇文章叫<小议数据库主键选取策略(原创)>,随即有网友提出了反驳意见<反驳 吕震宇的"小议数据库主键选取策略(原创)" >,看到后,我又做了做实验 ...

  5. Isilon三款新品构建数据湖2.0策略

    公司的边缘数据一直是被忽略的存在,据ESG的报告显示,将近70%的公司存在边缘办公室,并且边缘数据达到了10PB.如何将这些边缘数据管理起来成为一个挑战,因为边缘数据在存储上存在一定的技术壁垒,Isi ...

  6. 集中式服务器模型无线网络,认知无线电中次用户在重试排队和共享服务器模型下的均衡止步策略...

    摘要: 近几十年来,无线通信技术不断发展,频谱空间被划分的所剩无几,频谱资源日趋紧张,而这种资源紧张更多是由于对不同无线接入技术的频谱分配不合理引起的,认知无线电技术基于此应运而生.认知无线电技术中的 ...

  7. HDFS数据副本的摆放策略

    HDFS数据副本的摆放策略 副本的存放位置对于HDFS的性能和可靠性是非常重要的,如果副本的存放机制不好的话,在计算的过程中很大可能会产生数据传输,这样对于带宽和磁盘的IO影响非常巨大.因此对于优化副 ...

  8. 计算机系统备份的原则和策略,计算机系统数据备份机制与策略

    计算机系统数据备份机制与策略 20年第5 05期 华中电力 第 l卷 8 计算机系统数据备份机制与策略 耿煜 (樊学院机械系,北襄樊襄湖 4 15 ) 4 03 摘要:针对当今计算环境中不断增长的数据 ...

  9. 如何解决回归任务数据不均衡的问题?

    摘要:现有的处理不平衡数据/长尾分布的方法绝大多数都是针对分类问题,而回归问题中出现的数据不均衡问题确极少被研究. 本文分享自华为云社区<如何解决回归任务数据不均衡的问题?>,原文作者:P ...

最新文章

  1. 动手学深度学习需要这些数学基础知识
  2. Mac OS使用技巧之十:Finder的详细使用方法
  3. 当检测到运动时如何自动打开门灯
  4. ICCV 2019 | 微软开源跨视图融合的3D人体姿态估计算法,大幅改进SOTA精度
  5. python scrapy同时执行spiders多个爬虫
  6. 【编程珠玑】第七章 粗略估算
  7. 一个小故事来形容几个常用网络技术
  8. Could not find com.android.tools.build:gradle:2.2.3
  9. linux路由器压力测试,Apache Bench Web 压力测试
  10. mysql中的预留字段_数据库设计误区:备用字段 / 保留字段 / 预留字段
  11. ERStudio 8.0 连接Oracle进行反向工程
  12. html把圆形分成10份,CSS八等分圆的实现示例
  13. 认知:设计模式之观察者模式
  14. 2019年7月4日西藏17日之旅
  15. 微信小程序之 收藏功能
  16. JPEG 推荐的DC和AC系数的huffman(哈夫曼)码表
  17. python 逆序_python中逆序
  18. HBuilder安装教程
  19. Python语句求一个正整数的全部约数
  20. 【GIS教程】在谷歌地图中快速导出区域地形图

热门文章

  1. python入门——P36类和对象:给大家介绍对象
  2. uni-app开发规范
  3. Python安装第三方库临时使用国内源
  4. aws rds监控慢sql_使用本机备份的AWS RDS SQL Server迁移
  5. ssis导出数据性能_使用SSIS Hadoop组件导入和导出数据
  6. @RequestParam接收解析不到 POST 提交的 数据
  7. stm32寄存器版学习笔记04 定时计数器中断
  8. 动手实践虚拟网络 - 每天5分钟玩转 OpenStack(10)
  9. php之面向对象(2)
  10. 手持设备点击响应速度,鼠标事件与touch事件的那些事