在实际项目中,遇到的imbalance的情况有很多,常见的一个情况就是异常检测(Anomaly Detection). 针对常见的办法进行总结。

通常来说,遇到imbalance的情况可以用一下的方法:

  • 增加新的样本
  • 上采样(over sampling)
  • 下采样(under sampling)

上采样 vs 下采样

通俗来说,上采样就是增加imbalance中的样本
下采样就是去把正样本给消减一部分内容.

然而这两种方法都有着本身的弊病:
上采样容易加入一些无关紧要的负样本,或者是已有负样本的重复,导致over fitting
下采样会把有用样本中的一部分有效的信息给消减下去

所以有2种算法能够在一定程度上缓和这种情况:

  • SMOTE
  • Adasyn

Smote的原理

JAIR’2002的文章《SMOTE: Synthetic Minority Over-sampling Technique》提出了一种过采样算法SMOTE。概括来说,本算法基于“插值”来为少数类合成新的样本。下面介绍如何合成新的样本。

    设训练集的一个少数类的样本数为 TT ,那么SMOTE算法将为这个少数类合成 NTNT 个新样本。这里要求 NN 必须是正整数,如果给定的 N<1N<1 那么算法将“认为”少数类的样本数 T=NTT=NT ,并将强制 N=1。

考虑该少数类的一个样本 ii ,其特征向量为 xi,i∈{1,…,T}xi,i∈{1,…,T} :

  1. 首先从该少数类的全部 TT 个样本中找到样本 xixi 的 kk 个近邻(例如用欧氏距离),记为 xi(near),near∈{1,...,k}xi(near),near∈{1,...,k} ;2. 然后从这 kk 个近邻中随机选择一个样本 xi(nn)xi(nn) ,再生成一个 00 到 11 之间的随机数 ζ1ζ1 ,从而合成一个新样本 xi1xi1 :

xi1=xi+ζ1⋅(xi(nn)−xi)
xi1=xi+ζ1⋅(xi(nn)−xi)

  3. 将步骤2重复进行 NN 次,从而可以合成 NN 个新样本:xinew,new∈1,...,Nxinew,new∈1,...,N。那么,对全部的 TT 个少数类样本进行上述操作,便可为该少数类合成 NTNT 个新样本。

Smote的优缺点:

优点:

  • 通过随机采样生成的合成样本而非实例的副本,可以缓解过拟合的问题。
  • 不会损失有价值信息。

缺点:
* 当生成合成性实例时,SMOTE 并不会把来自其他类的相邻实例考虑进来。这导致了类重叠的增加,并会引入额外的噪音。
* SMOTE 对高维数据不是很有效。

改进的合成少数类过采样技术(MSMOTE)

这是 SMOTE 的改进版本,SMOTE 没有考虑数据集中少数类和潜在噪声的基本分布。所以为了提高 SMOTE 的效果,MSMOTE 应运而生。

该算法将少数类别的样本分为 3 个不同的组:安全样本、边界样本和潜在噪声样本。分类通过计算少数类的样本和训练数据的样本之间的距离来完成。安全样本是可以提高分类器性能的那些数据点。而另一方面,噪声是可以降低分类器的性能的数据点。两者之间的那些数据点被分类为边界样本。

虽然 MSOMTE 的基本流程与 SMOTE 的基本流程相同,在 MSMOTE 中,选择近邻的策略不同于 SMOTE。该算法是从安全样本出发随机选择 k-最近邻的数据点,并从边界样本出发选择最近邻,并且不对潜在噪声样本进行任何操作。

另外一种方法就是Adasyn:

解决思路是根据数据分布情况为不同小众样本生成不同数量的新样本。首先根据最终的平衡程度设定总共需要生成的新小众样本数量 G,然后为每个小众样本 xi 计算分布比例
基于聚类的重抽样方法
(1)首先分别对正负例进行K-means聚类
(2)聚类之后进行Oversampling等系列方法
举例说明,假设我们运行K-means方法分别对正负例进行了聚类: 正例三个簇,个数分别为:20 , 5, 12 负例两个簇,个数分别为:4 ,6
可以看出,正负例簇中个数最大的为20,所以正例其他两个簇通过oversampling都提高到20个实例,负例簇都提高到(20+20+20)/2=30 个实例。
最后变为,正例三个簇:20,20,20 负例两个簇:30,30
基于聚类的抽样算法的优点:该算法不仅可以解决类间不平衡问题,而且还能解决类内部不平衡问题。
Sergey Quora提出了一种优雅的方法,他建议不要依赖随机样本来覆盖训练样本的种类,而是将r个群体中丰富类别进行聚类,其中r为r中的例数。每个组只保留集群中心(medoid)。然后,基于稀有类和仅保留的类别对该模型进行训练。

不平衡学习的评价方法

正确率和F值,G-Mean和ROC曲线和AUC。
[机器学习模型的评价指标和方法 ]

[综述论文“Learning from Imbalanced Data”] http://blog.csdn.net/pipisorry/article/details/52574156
[不平衡数据下的机器学习方法简介]http://www.jianshu.com/p/3e8b9f2764c8
[机器学习︱非平衡数据处理方式与评估] http://blog.csdn.net/sinat_26917383/article/details/75890859
[不平衡数据处理]
https://github.com/ThoughtWorksInc/dataclouds/blob/master/source/_posts/%E4%B8%8D%E5%B9%B3%E8%A1%A1%E6%95%B0%E6%8D%AE%E5%A4%84%E7%90%86.md

对于Imbalance Data的总结相关推荐

  1. 面对imbalance data的时候

    面对imbalance data的时候 解决问题的思路 1:增加数据 2:算法 3:阈值 1 增加数据:增加数据的方法主要是smote ,borderline smote......这是这篇文章具体关 ...

  2. 提分策略:数据采样方法最全总结!

    采样策略汇总 背景 数据采样很多人都听过,书上亦或是博客上面,但并不是每个人在实践中都会用到,按实践经验来讲,原始数据包含了所有的信息,我们随意增加数据亦或者是删除数据,完全是没有必要的操作.那为什么 ...

  3. 对比学习系列论文SDCLR(二)-Self-Damaging Contrastive Learning

    目录 0.Abstract 0.1逐句翻译 0.2总结 1. Introduction 1.1. Background and Research Gaps 1.1.1逐句翻译 第一段(引出对比学习是否 ...

  4. matlab工具箱设置学习率_MATLAB金融工具箱:06:统计套利的机器学习2:特征工程和模型开发...

    本示例创建了限价订单(LOB)动力学的连续时间马尔可夫模型,并根据数据中观察到的模式开发了用于算法交易的策略.它是有关用于统计套利的机器学习的一系列相关示例的一部分(请参阅机器学习应用程序). 探索性 ...

  5. yolov3算法优点缺点_优点缺点

    yolov3算法优点缺点 Naive Bayes: A classification algorithm under a supervised learning group based on Prob ...

  6. UConn DataMining Math5671 课程小记(2)

    课程部分 主要讲 Nueral Network 原理,及数学和算法背景(略) 作业部分 Kaggle 的 Imbalance data 项目分析–Credit Card Fraud Detection ...

  7. 简单理解与实验生成对抗网络GAN

    from:https://blog.csdn.net/on2way/article/details/72773771 之前 GAN网络是近两年深度学习领域的新秀,火的不行,本文旨在浅显理解传统GAN, ...

  8. 英文文本分类实战总结

    之前参加了一个英文文本的分类比赛.比赛结束到了过年,加上开学又有一些事情,所以总结的工作就一直没有进行.现在空了一些,所以把之前的工作写一写,比赛中用到的代码也会放到github上. 对这个比赛的任务 ...

  9. 陌生单词-专业英语代码编码符号2

    ips:每秒处理的图片数量 End-to-end evaluation on the validation set with TEDS as the indicator. TLD: text line ...

最新文章

  1. 字节跳动Java面试:java软件工程师简历描述项目
  2. WebService的两种方式SOAP和REST比较 (转)
  3. OS_FLAG.C(1)
  4. mysql去重合并字符串,SQL编程:group by合并结果字符串 --- group_concat函数就能行...
  5. 吴恩达机器学习 Coursera 笔记(三) - 线性回归回顾
  6. Treap原理和实现方法
  7. win7系统怎样打开音频服务器,win7系统打开音频管理器的具体教程
  8. graphicsmagick im4java,GraphicsMagick+im4java 图片处理
  9. Unity的 UNet组件介绍
  10. QTP的那些事--XPath的重要使用
  11. tslib-1.4.tar.gz安装和配置
  12. 如何开启MacBook屏幕键盘面板显示间隙操作工具栏?
  13. c++把字符串逆序输出
  14. 视觉系统设计实例(halcon-winform)-10.PLC通讯
  15. 【论文笔记】Explainable Reasoning over Knowledge Graphs for Recommendation
  16. MBR15200FAC-ASEMI插件肖特基二极管MBR15200FAC
  17. 室内定位技术:分类、方法与应用综述
  18. 【AIX】AIX内存机制
  19. Dynamics CRM Server 2011出错,CRM Organization无法打开,无法创建和导入Organization的问题...
  20. 关于Could not find QtWebEngineProcess.exe 进程已结束,退出代码 -1073740791 (0xC0000409) 问题

热门文章

  1. 【经济学】读曼昆《微观经济学》
  2. svg波纹_使用SVG创建材质设计波纹效果
  3. LostRoutes项目日志——敌人精灵Enemy解析
  4. js常用下载的几种方式
  5. HPB普及:BOE完整流程、高性能选举
  6. 极路由 安装php,自己动手DIY:极路由贰移植WiFi Pineapple
  7. web开发学习之路是否有尽头
  8. 微信公众号开发(一)------对接公众号
  9. 微信私域流量池运营:您是否错失了将粉丝转变为客户的机会?电商宝提供一站式客户运营转化服务!...
  10. 书法绘画类毕业论文文献都有哪些?