非平衡数据集的机器学习常用处理方法
定义:不平衡数据集:在分类等问题中,正负样本,或者各个类别的样本数目不一致。
例子:在人脸检测中,比如训练库有10万张人脸图像,其中9万没有包含人脸,1万包含人脸,这个数据集就是典型的不平衡数据集。
直观的影响就是,用这些不平衡的数据训练出来的模型,其预测结果偏向于训练数据中数据比较多的那一类,在人脸检测的例子中,就是检测器的检测结果大部分都偏向于没有检测到人脸图像。
另外一个不平衡数据集,就是信用卡欺诈交易,如果平均的抽取数据,则大部分的数据都是非欺诈交易,只有非常少的部分数据是欺诈交易
影响:不平衡的数据集上做训练和测试,其得到的准确率是虚高的,比如在不平衡数据中,正负样本的比例为9:1时,当它的精度为90%时,我们很有理由怀疑它将所有的类别都判断为数据多的那一类。
解决方法:8种
1.收集更多的数据:好处:更够揭露数据类别的本质差别,增加样本少的数目以便后面的数据重采样。
2.尝试改变性能评价标准:
当数据不平衡时,准确度已经失去了它原有的意义,
可以参考的度量标准有:1> 混淆矩阵CM 2>精度 3>召回率 4>F1 分数(权衡精度和召回率);5.Kappa 6,ROC曲线
3.重采样数据:
1,拷贝一部分样本偏少的数据多分,已达到平衡(过采样);
2,删除一部分样本偏多的数据,以使得达到平衡(欠采样);
在实际中,过采样和欠采样都会使用的。
在测试中,如果样本总数比较多,可以用欠采样的数据进行测试,如果样本总数比较少,可以用过采样的数据进行测试;另外应该测试随机采样的数据和非随机采样的数据,同时,测试不同比例正负样本的数据。
4.生成合成数据:
最简单的是,随机采样样本数目比较少的属性,
另外一个比较出名的方法为:SMOTE:它是一种过采样的方法,它从样本比较少的类别中创建新的样本实例,一般,它从相近的几个样本中,随机的扰动一个特征,
5.使用不同的算法:
不要试图用一个方法解所有的问题,尝试一些其他不同的方法,比如决策树一般在不平衡数据集上表现的比较的好。
6.尝试惩罚模型:
意思就是添加新的惩罚项到cost函数中,以使得小样本的类别被判断错误的cost更大,迫使模型重视小样本的数据。
比如:带惩罚项的SVM
7.使用不同的视角:
不平衡的数据集,有专门的邻域和算法做这个,可以参考他们的做法和术语。
比如:异常检测。
8.尝试新的改进:
比如:1.把样本比较多的类别,分解为一些更多的小类别,比如:原始我们想区分数字0和其它数字这二分类问题,我们可以把其它数字在分为9类,变成0–9的分类问题;
原文:http://blog.csdn.net/chenriwei2/article/details/49227205
非平衡数据集的机器学习常用处理方法相关推荐
- 不平衡数据集评价指标及常用解决方法
1.不平衡数据集的评估指标有哪些? 评估指标1:recall,Precision,F-score,其中F-score是两者的中和,一般认为F-measure越高,分类器的性能越好: Precision ...
- 机器学习常用数据清洗方法
最近做机器学习的项目,汇总一下用得比较多的数据清洗方法,主要有:重新命名列名.去除空值.去除0值(或负值).过采样.下采样 1.重新命名列名 平时读数据的时候,原始数据总是有各种乱七八糟的命名,可以通 ...
- 【论文笔记】CUSBoost:基于聚类的提升下采样的非平衡数据分类
原论文地址:CUSBoost: Cluster-based Under-sampling with Boosting for Imbalanced Classification Abstract 普通 ...
- 机器学习︱非平衡数据处理方式与评估
解决这一问题的基本思路是让正负样本在训练过程中拥有相同的话语权,比如利用采样与加权等方法.为了方便起见,我们把数据集中样本较多的那一类称为"大众类",样本较少的那一类称为" ...
- 机器学习常用的六种分类方法,Python代码详细都在这里!
机器学习常用的六种分类方法,Python代码详细都在这里! 六种常用分类方法包括两种线性分类及四种非线性分类法,分别是: 一.线性判别分析 from sklearn.model_selection i ...
- 病理分析常见数据集及常用模型方法总结
病理分析常见数据集及常用模型方法总结 目录 病理分析常见数据集 病理图像分类常见处理方法 病理图像常见数据集详细说明 相关论文梳理
- 机器学习之常用优化方法(GD、牛顿、拟牛顿、拉格朗日乘子)
写在前面,本文只记录了个人认为的关键点,仅供参考.更多细节请参考链接中文章 参考1:机器学习之常用优化方法 参考2:拉格朗日乘数法 梯度下降法 梯度下降法是最早最简单,也是最为常用的最优化方法.梯度下 ...
- 33个机器学习常用数据集
若是本文能帮助到大家,希望可以关注小编 并转发分享!(thanks) 现如今构建人工智能或机器学习系统比以往的时候更加容易.普遍存在的尖端开源工具如 TensorFlow.Torch 和 Spark, ...
- 机器学习cnn数据集_33个机器学习常用数据集CV/NLP
若是本文能帮助到大家,希望可以关注小编 并转发分享!(thanks) 现如今构建人工智能或机器学习系统比以往的时候更加容易.普遍存在的尖端开源工具如 TensorFlow.Torch 和 Spark, ...
最新文章
- 167.两数之和Ⅱ-输入有序数组
- ofdma技术_科普:何为第六代WiFi技术?你家也可以轻松实现1.6G每秒的网速
- 【有三公开课】caffe图像分割项目实战
- w ndows7端口在哪里,win7电脑遇到端口被占用的情况该如何查看并将其关闭
- io密集型和cpu密集型_一次说明白Python爬虫中多线程,多进程,异步IO编程
- Ethercat解析(三)之Ubuntu添加Xenomai实时内核补丁
- php中的变量函数,PHP中的一些路径变量或函数
- java io类型_Java NIO之Java中的IO分类
- 【电路与电子技术】笔记 (完结)
- 伺服舵机匀加速和匀减速程序控制
- 如何用Java运行.jar文件
- 3GPP 各Release 版本(Rel-15、Rel-16、Rel-17)下载地址
- mac下Aria2GUI+Chrome解决网盘下载速度慢
- 语音合成工具Coqui TTS安装及体验
- Vue 3.0终于来了!官方凌晨开源代码,导读一波
- verilog报错汇总(2)
- 计算机上设置通讯参数,西门子S7-200PLC编程通信口参数设置
- 想看《笑傲江湖》的请戳进来
- 计算机控制技术(于海生)-整理
- 微信小程序 美团菜单
热门文章
- numpy随机生成01矩阵_NumPy数组基本介绍
- linux comm 12,Linux comm命令
- java服务器错误怎么解决_如何解决java.lang.IllegalStateException:服务器处于错误状态异常...
- 剪切工具怎么用_原创度检测工具是怎么用的?优质的内容更容易获得平台推荐...
- shell脚本实战 pdf_Shell脚本实战:日志关键字监控+自动告警
- efcore mysql autofac_Asp.NetCore3.1版本的CodeFirst与经典的三层架构与AutoFac批量注入
- 利用python进行统计分析学习笔记 第7章
- 新版pycharm,亮瞎我的狗眼
- 京东软件测试工程师招聘,京东商城软件测试面试经验
- python中opencv安装_怎么为python安装opencv模块-百度经验