干货|在机器学习中如何应对不均衡分类问题?_第1页
干货|在机器学习中如何应对不均衡分类问题?_第2页
干货|在机器学习中如何应对不均衡分类问题?_第3页
干货|在机器学习中如何应对不均衡分类问题?_第4页
干货|在机器学习中如何应对不均衡分类问题?_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、干货I在机器学习中如何应对不均衡分类问题?原文地址:在处理机器学习等数据科学问题时,经常会碰到不均衡种类分布的情况,即在样本数据中一个或多个种类的观察值明显少于其他种类的观察值的现象。在我们更关心少数类的问题时这个现象会非常突出,例如窃电问题、银行诈骗性交易、罕见病鉴定等。在这种情况下,运用常规的机器学习算法的预测模型可能会无法准确预测。这是因为机器学习算法通常是通过减少错误来增加准确性,而不考虑种类的平衡。这篇文章讲了不同的方法来解决这个不均衡分类问题,同时说明了这些方法的好处和坏处。不均衡数据集一般是指少数类所占比例少于 5% 的数据集,少数类通常是指稀有事件的发生。例如在一个公共欺诈检测

2、数据集中,有如下数据:总观测数据= 1000 欺诈的观测数据= 20 非欺诈的观测数据= 980 事件发生率= 2% 在分析这个数据集时最主要的问题是,如何通过合适的稀有事件的样本数目得到一个平衡的数据集?传统的模型评估方法不能准确的评价不均衡数据集训练的模型的表现。显然,模型趋向于预测多数集,少数集可能会被当作噪点或被忽视。因此,相比于多数集,少数集被错分的可能性很大。当使用一个不均衡数据集训练模型时,准确率并不是一个合适的评价方式。假如一个分类器可以达到 98% 的准确率, 我们会认为这个模型表现很好,而对于一个少数集占总体2% 的数据集来说,如果分类器把全部都预测为多数集, 准确率就能达

3、到 98% , 可是这个分类器对于预测没有任何用处。解决不均衡数据集带来的模型预测不准确的问题主要有两种方法,第一种方法是在数据层面将数据集转变为较为平衡的数据集,然后进行建模;第二种则是在算法层面改进算法模型的表现。在将数据用于建模之前,先运用重抽样技术使数据变平衡。平衡数据主要通过两种方式达到:增加少数类的频率或减少多数类的频率。通过重抽样来改变两个种类所占的比例。随机欠抽样随机欠抽样技术通过随机删除多数类的实例来平衡种类分布。在之前的例子中, 我们无放回的取10% 非欺诈数据, 结合所有的欺诈数据形成新数据集。这样,总观测数据变为20+980*10%=118 ,而欠抽样之后新数据集的事件

4、发生率为20/118=17% 。当训练数据很多时,随机欠抽样通过减少训练数据的数量提高运行时间和解决存储问题。然而,这也会带来潜在有效信息被删除的问题。欠抽样选择的数据可能是偏差样本,无法准确代表总体。因此,会导致在测试集中表现欠佳。过抽样技术是通过随机复制少数类的实例来增加少数类的数量。在之前的例子中,复制 20 个少数实例 20 遍,使少数类数据变为 400 条, 总观测数据变为 980+400=1380 ,事件发生概率为 400/1380=29% 。与欠抽样不同,过抽样不会损失任何信息。 一般来说, 过抽样表现好于欠抽样。 然而,由于过抽样复制了多遍少数类数据, 导致过拟合( over-

5、fitting )的可能性变大。基于聚类的过抽样基于聚类的过抽样是将k-means 聚类算法分别应用在少数类和多数类中, 识别出数据集中不同簇( cluster ) 。 随后, 通过对每个簇过抽样来确保多数类和少数类的簇中实例的数目相等。假设对于刚才的数据集做聚类结果如下: 多数类簇: 簇 1: 150 观测数据簇2: 120观测数据簇3: 230 观测数据簇4: 200 观测数据簇5: 150 观测数据簇 6: 130 观测数据少数类簇: 对簇过抽样之后, 每个相同种类的簇含有相同的数量的观测数据:多数类簇:簇1:170 观测数据簇2: 170 观测数据簇3: 170 观测数据簇4: 170

6、观测数据簇5: 170 观测数据簇6: 170 观测数据少数类簇:基于聚类的过抽样之后,事件发生率为500/(1020+500)=33% 。这种方法考虑了多数类少数类由不同的簇组成,解决了每个簇所包含的实例不同的问题。 然而,由于这是一种过抽样技术,同样也可能会导致过拟合。合成少数类过抽样( SMOTE ) SMOTE 避免了复制少数类导致的过拟合问题。用少数类的子集来创造新的合成的相似少数类实例。将这些合成的实例加入原有数据集,丰富少数类的数据。下图展示了创造合成实例的方法。还是用之前的例子,在少数类中选取15 个样本实例, 合成 20 次新的数据。 少数类数据变为为 300 条,事件发生率

7、为 300/1280=23.4% 。这种方法通过合成新数据缓解了由于复制少数类带来的过拟合问题,同时不会造成有效信息丢失。然而,当合成新实例时, 没有考虑与其他类的相邻实例, 这可能会导致种类重叠,并且可能会添入额外的噪点。算法集合技术上面所说的技术都是通过对原数据集进行重抽样来得到均衡数据集。在这一部分中,我们将对于现有分类算法进行改进,使其适用于不均衡数据集。算法合成的目的是提升单一分类器的表现,下图展示了合成算法的方法。图 2 :算法集合技术的方法基于baggingBagging 是 Bootstrap Aggregating 的缩写。传统的bagging 算法生成 n 个可以互相替换的

8、 bootstrap 训练样本。基于每个样本,训练不同的模型,最后汇总这些模型的预测结果。 Bagging 可以减少过拟合,从而创造更精准的预测模型。与 boosting 不同的是, bagging 允许对训练样本集进行替换。下图展示了bagging 的流程。在之前的例子中,从总体中可替换的抽取10 个 bootstrap 样本, 每个样本包含200个观测值。每个样本都与原始数据不相同,但是与原始数据的分布和可变性相似。很多机器学习算法都可以用来训练这10 个 bootstrap 样本,如逻辑回归、神经网络、决策树等,得到10个不同的分类器 C1 ,C2C10。将这10个分类器 集合成一个复合

9、分类器。这种集合算法结合了多个单独的分类器的结果,可以得到一个更好的复合分类器。 Bagging 算法提升了机器学习算法的稳定性和准确性,并且解决了过拟合问题。在有噪点的数据环境中, bagging 比 boosting 表现更加优异。 基于 BoostingBoosting 也是一个算法集合技术, 它 将弱分类器结合起来,形成一个可以准确预测的强分类器。Boosting 从一个为训练集准备的弱分类器开始。 弱分类器是指预测准确率只比平均数高一点的分类器,如果数据发生一点变化就会导致分类模型发生很大变化。 Boosting 是一种提高任意给定学习算法精确度的方法。下图展示了 Boosting的

10、方法。 图 4: Boosting 的方法下面介绍几种不同的 boosting技术。 Ada Boost 是 Boosting 算法家族中的代表算法, 通过结合许多弱分类器形成一个准确的预测分类器。每个分类器的目的都是正确分类上一轮被分错的实例。每一轮之后,被分错的实例的权重增加,被正确分类的实例的权重降低。应用 Ada Boost 到刚才的不均衡数据集中, 首先给每一个实例相同的权重,假设基础分类器只分对了 400 个实例,将这400 个实例的权重减小为, 剩下 600 个被错分的实例的权重增加到。 每一轮中, 弱分类器通过更新权重来提升它的表现。这个过程持续到错分率明显下降,分类器变成了强

11、分类器为止。 Ada Boost 的好处在于它非常便于执行, 而且非常普遍,适用于所有种类的分类算法,也不会导致过拟合。坏处是它对于噪点和异常值非常敏感。 Gradient Boosting 是一个最优化算法, 每个模型都按顺序通过Gradient Descent 方法最小化损失函数。在Gradient Boosting 中,决策树被当作一个弱分类器。 Ada Boost 和 Gradient Boosting 都是将弱分类器变为强分类器的方法,但这两种方法有本质的不同。 AdaBoost 在学习过程开始之前要求用户设立弱分类器集或者随机生成弱分类器集,每一个弱分类器的权重会根据是否分类正确调

12、整。 Gradient Boosting 则是在训练集上建立第一个分类器预测, 接着计算损失值, 然后运用损失值来改进分类器。每一步中,损失函数的残差都会通过Gradient DescentMethod 来计算。在随后的迭代中,新的残差变成了目标变量。 Gradient Tree Boosting 比随机森林更难以拟合。它有三个参数可以微调, Shrinkage 参数, 树的深度和树的数量。选择合适的参数才能得到好的拟合的 Gradient boosted tree如果参数调整的不正确,可能会导致过拟合。结论当面对不均衡数据集时,没有一个解决方案可以提升所有预测模型的准确性。我们所需要做的可能就是尝试不同

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论