【机器学习300问】41、如果数据集中有少量带有标签,到底是选择异常检测还是有监督学习呢?

本文主要是介绍【机器学习300问】41、如果数据集中有少量带有标签,到底是选择异常检测还是有监督学习呢?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、背景问题

        有时候会遇到这样一种情况,构建异常检测系统的时候也使用了少量带标签的数据,既然使用了带标签的数据,那么就和监督学习有点类似,那为什么不用监督学习呢?

二、异常检测任务的特殊性

        在构建异常检测系统的过程中,有时我们会面临这样的场景:虽然仅采用了少量带标签的数据,但这已经引入了某种程度上的监督信号,这与纯无监督异常检测方法有所不同。尽管如此,我们并未完全采用传统意义上的有监督学习方法,原因在于:

  • 数据集不平衡

        异常检测通常面对的是不平衡的数据集,其中正常数据大量存在而异常数据相对稀缺。这种不平衡导致使用传统有监督学习方法变得不合理,因为模型很可能会倾向于将大多数样本归类为主导的"正常"类别,而忽略稀有的"异常"类别。

  • 异常事件少见且多样

        异常检测任务里很难获取到足够多且具有代表性的异常标签数据,因为异常事件发生的频次低,并且类型可能多种多样和未知。无法获取足够数量且全面覆盖各种异常类型的标签数据来实施严格的有监督学习。

三、异常检测与监督学习对比

        一句话先把最重要的说出来:“异常检测要检测出那些之前从来都没见过的异常,有监督无法做到,他只能识别出训练集中出现过的异常”

异常检测监督学习
非常少量的正类(异常数据y=1)大量的负类(正常数据y=0)同时有大量的正类和负类
遍历许多不同种类的异常非常难,只能根据少量正类数据训练算法,未来遇到的异常可能与已经掌握的异常十分不同有足够多的正类,足以训练算法,未来遇到的正类数据可能与训练集中的十分相似
欺诈行为检测、工业缺陷检测等等天气预报、肿瘤分类等等

这篇关于【机器学习300问】41、如果数据集中有少量带有标签,到底是选择异常检测还是有监督学习呢?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/832983

相关文章

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页

Python异常处理之避免try-except滥用的3个核心原则

《Python异常处理之避免try-except滥用的3个核心原则》在Python开发中,异常处理是保证程序健壮性的关键机制,本文结合真实案例与Python核心机制,提炼出避免异常滥用的三大原则,有需... 目录一、精准打击:只捕获可预见的异常类型1.1 通用异常捕获的陷阱1.2 精准捕获的实践方案1.3

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧

《Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧》本文将通过实际代码示例,深入讲解Python函数的基本用法、返回值特性、全局变量修改以及异常处理技巧,感兴趣的朋友跟随小编一起看看... 目录一、python函数定义与调用1.1 基本函数定义1.2 函数调用二、函数返回值详解2.1 有返

JAVA实现亿级千万级数据顺序导出的示例代码

《JAVA实现亿级千万级数据顺序导出的示例代码》本文主要介绍了JAVA实现亿级千万级数据顺序导出的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 前提:主要考虑控制内存占用空间,避免出现同时导出,导致主程序OOM问题。实现思路:A.启用线程池

Git打标签从本地创建到远端推送的详细流程

《Git打标签从本地创建到远端推送的详细流程》在软件开发中,Git标签(Tag)是为发布版本、标记里程碑量身定制的“快照锚点”,它能永久记录项目历史中的关键节点,然而,仅创建本地标签往往不够,如何将其... 目录一、标签的两种“形态”二、本地创建与查看1. 打附注标http://www.chinasem.cn