0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

机器学习如何应对失衡类别

zhKF_jqr_AI 来源:未知 作者:邓佳佳 2018-03-05 11:53 次阅读

前言

实际应用中的分类问题往往不像教科书上人造的例子那样齐整,类别往往存在某种程度上的失衡。Towards Data Science博主Devin Soni简要介绍了应对失衡分类的常用方法。

介绍

大多数真实世界的分类问题都呈现出某种程度的类别失衡,即每个类别在数据集中的比例不同。恰当地调整指标和方法以适应目标非常重要。否则,你可能最终会为一个对你的用例无意义的度量指标进行优化。

例如,假设你有两个类——A和B。A类占数据集的90%,B类占10%,但你最感兴趣的是识别B类的实例。你可以每次都预测分类为A,这样轻易就能达到90%的精确度,但对你的预期用例而言,这是一个无用的分类器。相反,经过恰当地校准的方法可能精确度较低,但会有较高的真阳率(或召回),这才是你应该优化的指标。在进行检测时,这是常常发生的场景,例如检测在线恶意内容或医疗数据中的疾病标记。

现在我将讨论几种可以用来缓解类别失衡的技术。一些技术适用于大多数分类问题,而其他技术可能更适合具备特定的失衡水平的问题。本文将从二元分类的角度来讨论这些问题,但大多数情况下,这些技术同样适用于多类分类问题。本文同时假设目标是识别少数类别,否则,这些技术并不是真的很有必要。

指标

一般来说,这个问题涉及召回率(recall,真阳性实例被分类为阳性实例的百分比)和准确率(precision,被分类为真阳性的实例中确实是阳性的百分比)之间的折衷。当我们想要检测少数类别实例时,我们通常更关心召回率而不是准确率,因为在检测的情境中,错过正面实例的成本通常高于错误地标记负面实例为正面实例。例如,如果我们试图检测恶意内容,那么手动审核纠正被误认为恶意内容的正常内容是微不足道的,但要识别甚至从未被标记为恶意内容的内容就要困难很多了。因此,比较适用于失衡分类问题的方法时,请考虑使用精确度之外的指标,例如召回率,准确率和AUROC。在选择参数和模型时,切换优化指标可能就足以提供侦测少数类别所需的表现。

成本敏感学习

在通常的学习中,我们平等对待所有错误分类,这在失衡分类问题中会导致问题,因为相比识别出主要类别,识别出少数类别并不会有额外的奖励。成本敏感学习改变了这一点,使用函数C(p, t)(通常表示为矩阵)指定将t类实例错误分类为p类实例的成本。这让我们可以给错误分类少数类别更多的惩罚,以便增加真阳率。一个常用的方案是让成本等于类别在数据集中所占比例的倒数。这样,当类别尺寸缩小时,惩罚会增加。

采样

解决失衡数据集的一个简单方法就是平滑它们,过采样少数类别,或者欠采样主要类别。这让我们创建一个平衡的数据集,理论上能使分类器不偏向其中一个类。然而,这些简单的采样方法实际上存在缺陷。过采样少数类别会导致模型过拟合,因为它会引入从已经很小的实例池中抽取的重复实例。同样,欠采样主要类别可能最终导致遗漏体现了两个类别之间的重要差别的重要实例。

还存在比简单的过采样或欠采样更强大的采样方法。最着名的例子是SMOTE,SMOTE通过构建相邻实例的凸组合来创建少数类别的新实例。如下图所示,它有效地绘制了特征空间中少数点之间的线条,并沿着这些线条采样。这使我们能够平衡我们的数据集,而不会过多地过拟合,因为我们创建了新的合成示例,而没有使用重复样本。不过这并不能防止所有过拟合,因为这些合成数据点仍然是基于现有数据点创建的。


可视化SMOTE。阴影方块:主要类别样本;黑点:少数类别样本;红点:生成样本

异常侦测

在更极端的情况下,将分类问题考虑成异常检测(anomaly detection)问题可能会更好。在异常检测问题中,我们假设有一个或一组“正常”的数据点分布,而任何与该分布足够偏离的东西都是异常值。将分类问题置于异常检测的框架下以后,我们将主要类别视为点的“正常”分布,将少数类别视为异常。有许多用于异常检测的算法,例如聚类(clustering)方法,单类SVM(One-class SVM)和孤立森林(Isolation Forests)。


可视化用于异常检测的聚类方法

结论

希望这些方法的某些组合可以让你创建一个更好的分类器。像我之前说的那样,这些技术中的某些技术更适合不同程度的失衡。例如,简单的采样技术可以让你克服轻微失衡,而极端失衡可能需要异常检测方法。基本上,对于这个问题,没有包治百病的灵丹妙药,你需要尝试每种方法,看看它们应用到你的特定用例和指标的效果如何。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器学习
    +关注

    关注

    66

    文章

    8375

    浏览量

    132397

原文标题:机器学习如何应对失衡类别

文章出处:【微信号:jqr_AI,微信公众号:论智】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    什么是机器学习?通过机器学习方法能解决哪些问题?

    来源:Master编程树“机器学习”最初的研究动机是让计算机系统具有人的学习能力以便实现人工智能。因为没有学习能力的系统很难被认为是具有智能的。目前被广泛采用的
    的头像 发表于 11-16 01:07 200次阅读
    什么是<b class='flag-5'>机器</b><b class='flag-5'>学习</b>?通过<b class='flag-5'>机器</b><b class='flag-5'>学习</b>方法能解决哪些问题?

    NPU与机器学习算法的关系

    在人工智能领域,机器学习算法是实现智能系统的核心。随着数据量的激增和算法复杂度的提升,对计算资源的需求也在不断增长。NPU作为一种专门为深度学习机器
    的头像 发表于 11-15 09:19 277次阅读

    具身智能与机器学习的关系

    具身智能(Embodied Intelligence)和机器学习(Machine Learning)是人工智能领域的两个重要概念,它们之间存在着密切的关系。 1. 具身智能的定义 具身智能是指智能体
    的头像 发表于 10-27 10:33 267次阅读

    人工智能、机器学习和深度学习存在什么区别

    人工智能指的是在某种程度上显示出类似人类智能的设备。AI有很多技术,但其中一个很大的子集是机器学习——让算法从数据中学习
    发表于 10-24 17:22 2443次阅读
    人工智能、<b class='flag-5'>机器</b><b class='flag-5'>学习</b>和深度<b class='flag-5'>学习</b>存在什么区别

    【「时间序列与机器学习」阅读体验】+ 简单建议

    这本书以其系统性的框架和深入浅出的讲解,为读者绘制了一幅时间序列分析与机器学习融合应用的宏伟蓝图。作者不仅扎实地构建了时间序列分析的基础知识,更巧妙地展示了机器学习如何在这一领域发挥巨
    发表于 08-12 11:21

    深度学习在工业机器视觉检测中的应用

    识别等任务。传统的机器视觉检测方法通常依赖于手工设计的特征和固定的算法,难以应对复杂多变的工业环境。而深度学习的引入,为工业机器视觉检测带来了新的突破和发展机遇。
    的头像 发表于 07-08 10:40 967次阅读

    人工智能、机器学习和深度学习是什么

    在科技日新月异的今天,人工智能(Artificial Intelligence, AI)、机器学习(Machine Learning, ML)和深度学习(Deep Learning, DL)已成为
    的头像 发表于 07-03 18:22 1097次阅读

    机器学习算法原理详解

    机器学习作为人工智能的一个重要分支,其目标是通过让计算机自动从数据中学习并改进其性能,而无需进行明确的编程。本文将深入解读几种常见的机器学习
    的头像 发表于 07-02 11:25 744次阅读

    机器学习在数据分析中的应用

    随着大数据时代的到来,数据量的爆炸性增长对数据分析提出了更高的要求。机器学习作为一种强大的工具,通过训练模型从数据中学习规律,为企业和组织提供了更高效、更准确的数据分析能力。本文将深入探讨机器
    的头像 发表于 07-02 11:22 543次阅读

    深度学习与传统机器学习的对比

    在人工智能的浪潮中,机器学习和深度学习无疑是两大核心驱动力。它们各自以其独特的方式推动着技术的进步,为众多领域带来了革命性的变化。然而,尽管它们都属于机器
    的头像 发表于 07-01 11:40 1179次阅读

    机器学习的经典算法与应用

    关于数据机器学习就是喂入算法和数据,让算法从数据中寻找一种相应的关系。Iris鸢尾花数据集是一个经典数据集,在统计学习机器学习领域都经常被
    的头像 发表于 06-27 08:27 1567次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>的经典算法与应用

    请问PSoC™ Creator IDE可以支持IMAGIMOB机器学习吗?

    我的项目使用 POSC62 MCU 进行开发,由于 UDB 模块是需求的重要组成部分,所以我选择了PSoC™ Creator IDE 来进行项目开发。 但现在,由于需要扩展,我不得不使用机器学习模块
    发表于 05-20 08:06

    机器学习8大调参技巧

    今天给大家一篇关于机器学习调参技巧的文章。超参数调优是机器学习例程中的基本步骤之一。该方法也称为超参数优化,需要搜索超参数的最佳配置以实现最佳性能。
    的头像 发表于 03-23 08:26 561次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>8大调参技巧

    如何使用TensorFlow构建机器学习模型

    在这篇文章中,我将逐步讲解如何使用 TensorFlow 创建一个简单的机器学习模型。
    的头像 发表于 01-08 09:25 907次阅读
    如何使用TensorFlow构建<b class='flag-5'>机器</b><b class='flag-5'>学习</b>模型

    供需失衡 碳酸锂或跌破10万元大关

    临近年末,供需失衡及市场看空情绪笼罩下,碳酸锂价格再次下跌。
    的头像 发表于 11-28 15:08 688次阅读