SMOTE学习笔记

  对这段时间了解到了SMOTE算法及其改进的论文做一下总结,方便以后复习~

经典的SMOTE

    经典SMOTE算法的思想用上述图形就可以很好的表述了。最中间的样本点Y是我们选取的少数类中的跟样本点,周围四个Y样本点是选取的4个最近邻点(也是从少数类样本中选取的),然后在每一组跟样本和辅助样本点之间的欧氏空间内随机合成一个人工样本点,这样就达到了扩充少数类样本的目的,有利于之后的ML。

SMOTE的改进
参考文献:
《SMOTE过采样及其改进算法研究综述》 发布时间:2019年
《SMOTE for Learning from Imbalanced Data: Progress and Challenges, Marking the 15-year Anniversary》 发布时间:2018年

主要有以下几种改进思路:

  1. 根样本点选取的改进
      在合成样本之前,在数据集中选取最好的候选样本进行过采样,目的是减少最终数据集中的重叠和噪声。常见的方法是选取边界样本。
    经典算法:
      Borderline -SMOTE :2005年,该算法的前提是远离边界的样本对分类的成功贡献不大。通过 k-NN 方法将原始数据中的少数类样本划分成“Safe”、“Danger”和“Noise”3 类,其中“Danger”类样本是指靠近分类边界的样本。根据 SMOTE 插值原理,对属于“Danger”类少数类样本进行过采样,可增加用于确定分类边界的少数类样本。
  2. 和欠采样技术相结合
      使用欠采样算法删除多数类样本中的有害样本。
    经典算法:
      AHC:2006年,使用k-means聚类算法对多数类样本进行欠采样(python有对应的module可以直接使用,但好像不是这种算法,没有仔细看)。
  3. 合成样本的插入
      经典的SMOTE算法在根样本和辅助样本之间插入合成样本是随机的。对其进行改进有以下思路:插入的合成样本更加靠近根样本或者使用特征加权的方式插入合成样本;在根样本附近的空间区域内(如椭圆)插入合成样本;基于聚类插入样本;使用不同的随机分布(如高斯分布)插值。
    经典算法:
      Safe-Level-SMOTE :2009年,在合成新样本前分别给每个少数类样本分配一个安全系数,新合成的样本更加接近安全系数高的样本,从而保证新样本分布在安全区域内。
    DBSMOTE:2012年,该算法依赖于一种基于密度的聚类方法,称为DBSCAN,并通过从每个少数实例到少数类聚类的伪中心点的最短路径生成合成样本来进行过采样。
    MWMOTE:2014年,基于现有过采样方法可能会生成错误的合成少数样本的假设,MWMOTE 分析最困难的少数样本,并根据它们与最近的多数样本的距离为每个样本分配权重。 然后使用聚类方法从加权信息少数类实例中生成合成示例,确保它们必须位于少数类集群内。
      G-SMOTE :2017年,通过在每个选定的少数类样本周围的几何区域内生成人工样本,加强了 SMOTE 的数据生成机制。(Python可以直接使用G-SMOTE模块进行采样)
  4. 降低/增加数据的维度
      在SMOTE采样之前降低/增加数据维度。
  5. 自适应的生成合成样本
      比较经典的算法为ADASYN(2008年)。它根据少数类样本的分布自适应地改变不同少数类样本的权重,自动地确定每个少数类样本需要合成新样本的数量,为较难学习的样本合成更多的新样本。
  6. 对人工合成的样本进行过滤
      核心思路是在SMOTE 过程结束后添加噪声过滤的步骤,两种典型的技术是 SMOTE-TomekLinks 和 SMOTE+ENN(2004年)。对人工合成样本的过滤会使得SMOTE拥有更加良好的效果。现在已经提出了许多类型的过滤器来增强 SMOTE,例如贪婪过滤策略、基于粗糙集的过滤、基于集成的过滤和仿生优化程序。
    SMOTE-IPF :2015年,采用迭代分区滤波器 (iterative-partitioning filter, IPF) 将噪声过滤器与SMOTE 融合,旨在克服不平衡问题中的噪声和边界问题。
  7. 其他方法
      除此之外,也有面向分类型数据的改进。传统的SMOTE算法使用欧氏距离计算各个样本点的距离,这样只能计算数值型数据。而对于分类型数据的SMOTE采样,有两种改进思路,将类型数据数值化或者使用其他的距离度量公式。


To be a sailor of the world bound for all ports.
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

carpe~diem

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值