本文主要是介绍【机器学习300问】41、如果数据集中有少量带有标签,到底是选择异常检测还是有监督学习呢?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、背景问题
有时候会遇到这样一种情况,构建异常检测系统的时候也使用了少量带标签的数据,既然使用了带标签的数据,那么就和监督学习有点类似,那为什么不用监督学习呢?
二、异常检测任务的特殊性
在构建异常检测系统的过程中,有时我们会面临这样的场景:虽然仅采用了少量带标签的数据,但这已经引入了某种程度上的监督信号,这与纯无监督异常检测方法有所不同。尽管如此,我们并未完全采用传统意义上的有监督学习方法,原因在于:
- 数据集不平衡
异常检测通常面对的是不平衡的数据集,其中正常数据大量存在而异常数据相对稀缺。这种不平衡导致使用传统有监督学习方法变得不合理,因为模型很可能会倾向于将大多数样本归类为主导的"正常"类别,而忽略稀有的"异常"类别。
- 异常事件少见且多样
异常检测任务里很难获取到足够多且具有代表性的异常标签数据,因为异常事件发生的频次低,并且类型可能多种多样和未知。无法获取足够数量且全面覆盖各种异常类型的标签数据来实施严格的有监督学习。
三、异常检测与监督学习对比
一句话先把最重要的说出来:“异常检测要检测出那些之前从来都没见过的异常,有监督无法做到,他只能识别出训练集中出现过的异常”
异常检测 | 监督学习 |
非常少量的正类(异常数据y=1)大量的负类(正常数据y=0) | 同时有大量的正类和负类 |
遍历许多不同种类的异常非常难,只能根据少量正类数据训练算法,未来遇到的异常可能与已经掌握的异常十分不同 | 有足够多的正类,足以训练算法,未来遇到的正类数据可能与训练集中的十分相似 |
欺诈行为检测、工业缺陷检测等等 | 天气预报、肿瘤分类等等 |
这篇关于【机器学习300问】41、如果数据集中有少量带有标签,到底是选择异常检测还是有监督学习呢?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!