如何开发一个异常检测系统:如何评价一个异常检测算法

利用数值来评价一个异常检测算法的重要性

使用实数评价法很重要,当你用某个算法来开发一个具体的机器学习应用时,你常常需要做出很多决定,如选择什么样的特征等等,如果你能找到如何来评价算法,直接返回一个实数来告诉你算法的好坏,那样你做决定就会更容易一些。如现在有一个特征,要不要将这个特征考虑进来?如果你带上这个特征运行你的算法,再去掉这个特征运行你的算法,得到返回的实数,这个实数直接告诉你加上这个特征算法是变好了还是变坏了,这样你就有一种更简单的算法来确定是否要加上这个特征。

为了更快地开发出一个异常检测系统,那么最好能找到某种评价异常检测系统的方法。

为了能评价一个异常检测系统,假定已有一些带标签的数据,其中有正常的样本也有异常的样本(正常的样本y=0,异常的样本y=1)

对于训练集,我们还是看成无标签的样本,将它们都看成无异常的样本(其中可能有一些有异常的样本被分到训练集中)

定义交叉验证集与测试集,通过这两个集合得到异常检测算法。我们假设交叉验证集与测试集中的样本都是异常的,即测试集里面的样本y=1(表示异常样本)。

具体的例子

有10000个正常的飞机引擎,有20个有问题的飞机引擎,从以往经验来看,无论是制造了多少年的飞机引擎工厂,都会得到大概20个有问题的引擎。对于异常检测典型的应用来说,异常样本的个数通常都是20-50个这样的个数,并且通常我们的正常样本数量要大得多。

我们将数据分成训练集,交叉验证集和测试集,典型的分法是:将10000个好的引擎样本中的6000个放入trainning set中做为无标签的数据(实际都为正常的样本),将剩下的正常的样本中的2000个样本放入交叉验证集中,另2000个样本放入测试集中(正常样本的分配比例是6:2:2);将有异常的20个样本,其中10个放入CV中,另外10个放入Test中。

另一种常见的分配方法(不推荐这样做)是将CV与Test的样本混合起来使用,将剩下的4000个好的样本即做为CV也做Test使用(不推荐这样做)

 异常检测算法的推导与评估

异常检测算法的推导与评估算法如下:首先我们使用训练样本(虽然都是是无标签的样本但其实都是正常的样本)来拟合模拟p(x)(即参数估计出u,σ的值)

对于CV与Test里面的数据,我们利用算法对y进行预测,然后来评价预测的准确率。如何来度量呢?

因为数据是非常偏斜的(正常的数据多,异常的数据少),因此分类准确率不是一个好的度量方法,算出查准率、召回率以及F1值,通过这些方法来评价我的异常检测算法在CV以及Test中的表现。

怎么决定ε的值呢?在交叉验证集上来决定取什么ε的值,在交叉验证集上尝试多个不同的ε的取值,然后选出一个使得F1值最大的那个ε的值,即在交叉验证集上表现最好的那个ε的值。当我们需要做出决定时(如选哪个特征,选哪个ε的值),我们可以不断地使用交叉验证来评价这个算法的好坏,然后决定我们要选取哪个特征,选哪个ε的值。

当找到ε的值后,我们的异常检测算法就确定了,然后使用Test集来评价算法的表现

总结

 1>如何评价一个异常检测算法:使用F1值,在交叉验证集上做出决定如何选择ε(确定ε的大小)以及应该包括哪些特征等

转载于:https://www.cnblogs.com/yan2015/p/7401680.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/400109.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机类产品评价技术指标体系研究之图形(像)篇

(一)显卡对于核心的显卡来说,显存工作频率越高性能越好,而显存的ns数值越小的显存能跑更高的频率,所以显存的ns被认为是显卡选购的关键之一,另外就是显存的品牌。显卡和主板上都有“内存”,不过主板上的那种…

【联盛德W806上手笔记】四、PWM模块

目录PWM 控制器库函数函数参数宏测试程序独立模式main.cwm_hal_msp.cwm_it.c实验现象多通道同步模式main.cwm_hal_msp.cwm_it.c实验现象Windows 10 20H2 HLK-W806-V1.0-KIT WM_SDK_W806_v0.6.0 摘自《W806 芯片设计指导书 V1.0》、《W806 MCU 芯片规格书 V2.0》 PWM 控制器 5 …

C#中如何稳定精确地每隔5ms执行某个函数?

C#中如何稳定精确地每隔5ms执行某个函数? 在开始前我有一些资料,是我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「C#的资料从专业入门到高级教程工具包」,点个关注,全部无偿共享给大家&#xf…

datatable 自定义搜索框 + 汉化

HTML <input type"text" id"my_news_search" class"" placeholder"搜索站内新闻"> <button class"" id"my_news_search_btn" type"button">搜索</button> JS <script>$(docu…

vlan

分割广播域1.物理分割&#xff08;路由器&#xff09;2.逻辑分割&#xff08;VLAN&#xff09;VLAN的优势&#xff1a;1.控制广播2.增强网络安全性3.简化管理VLAN的种类&#xff1a;1.静态VLAN&#xff1a;基于端口划分静态VLAN2.动态VLAN&#xff1a;基于MAC地址划分VLAN注&am…

【联盛德W806上手笔记】五、TIM定时器

目录定时器库函数函数参数宏Demo中的测试程序main.cwm_hal_msp.cwm_it.c实验现象Windows 10 20H2 HLK-W806-V1.0-KIT WM_SDK_W806_v0.6.0 摘自《W806 芯片设计指导书 V1.0》、《W806 MCU 芯片规格书 V2.0》 定时器 微秒与毫秒计时&#xff08;据时钟频率配置计数个数&#xff…

linux驱动分离分层的概念

这个分离分层的概念和输入子系统有点像&#xff0c;但不是完全一样的。为什么会再弄一个这个模型出来我也没有搞懂&#xff0c;现在我的学习还停留在把知识学懂的层面上。至于为什么会产生这种知识&#xff0c;现在我还无从解释&#xff0c;还需时日成长。 这次先上代码在解释整…

IOS-企业开发人员账号amp;邓白氏码申请记录

Apple开发人员账号分三种&#xff0c;个人。公司&#xff0c;还有企业。个人和公司都称为标准账号。另一种是教育机构的账号。 账号介绍 个人和公司的就不说了。如今仅仅说企业账号 首先是申请企业账号的地址&#xff1a; https://developer.apple.com/programs/ios/enterpri…

wordpress置顶文章调用与设置

文章来源: https://www.xuewangzhan.net/wpbbs/15737.html wordpress网站后台允许我们设置一些置顶文章&#xff0c;然后通过调用置顶文章的代码把它调用到自己的网站前台。 下面是最常用的wordpress调用置顶文章代码&#xff0c;适用于所有模板使用。 <?php $sticky g…

【联盛德W806上手笔记】六、7816/UART 控制器

目录7816/UART 控制器串口功能7816 接口功能下载口库函数函数参数宏Demo中的测试程序main.cwm_hal_msp.cwm_it.cfifo.cfifo.hWindows 10 20H2 HLK-W806-V1.0-KIT WM_SDK_W806_v0.6.0 摘自《W806 芯片设计指导书 V1.0》、《W806 MCU 芯片规格书 V2.0》 7816/UART 控制器 设备端…

数据库去重查询问题详解

预算2014年院线预算 影城&#xff08;多选&#xff09;北京CBD影城 查询 科目蚌埠万达广场店北京CBD影城  营业收入11 票房收入11 卖品收入00 逾期收入00 广告收入00 映前广告00 LCD广告00 阵地收入00 IMAX广告收入00 其他广告收入00 其…

MySQL5.7更改用户名密码

ALTER USER test% IDENTIFIED BY 123456; https://www.cnblogs.com/paul8339/p/9054497.html 更改用户名密码&#xff0c;官方推荐使用alter ALTER USER test% IDENTIFIED BY 123456; 还有一种 update mysql.user set authentication_stringpassword("新密码") …

python 装饰器 三 (带有参数的装饰器)

#接受装饰器的参数def deco_arg(deco_arg):#接受函数 此列为func1def deco_func(*argv,**kwag):#接受函数的方法 此列为 a bdef _deco_func(*argv,**kwarg):print "before -------执行函数前"print "%s -------打印装饰器的参数"% deco_argret deco_f…

jQuery、jQury UI、jQuery Mobile----读书笔记

<!DOCTYPE html> <html> <head><meta charset"utf-8"> <meta name keywords content""> <meta name descriptioon content“jQuery、jQury UI、jQuery Mobile”> <title>jQuery、jQury UI、jQuery …

【联盛德W806上手笔记】七、I2C

目录WM_SDK_W806_v0.6.0的库函数函数参数宏应用示例初始化使用测试I2C 控制器功能概述主要特性功能描述传输速率选择中断及启动停止可控快速输出及检测信号寄存器描述寄存器列表时钟分频寄存器_1时钟分频寄存器_2控制寄存器数据寄存器收发控制寄存器TXR 读出寄存器CR 读出寄存器…

WordPress如何获取文章所属分类ID、名称或别名?

https://boke112.com/bkwd/4269.html 在 wordpress 主题制作过程中&#xff0c;我们可能会经常用到当前分类 ID&#xff0c;如&#xff1a;在文章页获取该文章分类下的相关文章&#xff0c;这时就可能用到当前分类 ID&#xff0c;即当前文章所在的分类 ID。那么&#xff0c;wor…

【联盛德W806上手笔记】八、SPI及其DMA

目录高速 SPI 设备控制器库函数函数参数宏应用示例初始化引脚复用中断相关使用注意事项DataAlignmentDirection测试main.cwm_hal_msp.cwm_it.c其他改动实验现象Windows 10 20H2 HLK-W806-V1.0-KIT WM_SDK_W806_v0.6.0 摘自《W806 芯片设计指导书 V1.0》、《W806 MCU 芯片规格书…

安装配置 radicale

为什么80%的码农都做不了架构师&#xff1f;>>> 可以直接pip安装,也可以下载源码安装,如果要存储到sql里面,则需要下载源码包,用里面的schema.sql 建表 默认安装后没有相应的配置文件,源码包里面也包含了 logging 和config,放到/etc/radicale 下 安装没什么说的,下…

散分,并如何判断时间段上有重叠冲突。

比如某个会议室的预订信息表 roomBookInfo(id,title,beginTime,endTime), 现在有一个新的预订请求 bTime, eTIme 分别 代表 开始、结束时间。请检查下表中的记录&#xff0c;查看是否有时间上的冲突。create table roomBookInfo (id int auto_increment primary key, title var…