如何开发一个异常检测系统:使用什么特征变量(features)来构建异常检测算法
如何构建与选择异常检测算法中的features

如果我的feature像图1所示的那样的正态分布图的话,我们可以很高兴地将它送入异常检测系统中去构建算法。
如果我的feature像图2那样不是正态分布的话,虽然我们也可以很好的运行算法,但是我们通常会使用一些转换方法,使数据看下来更像高斯分布,这样算法会工作得更好。
给出上图中下面的这个数据集,可以对其进行一个求对数的转换,这样可以得到一个更像高斯分布的图,这样我们就可以评估出u和σ2了.

在octave里面使用hist来画柱状图,默认是10个柱状,hist(x,50),50个柱条。hist(x.^0.5,50) =>使用x1/2来进行转换,如上图所示。
也可以使用log(x+c),通过调整c来使其更像高斯分布,也可使用x1/2来进行转换等等
所有的这些转换目的是让数据看起来更像高斯分布。
如果画出数据的直方图,发现图形看起来非常不像高斯分布,那么应该进行一些不同的转换,通过这些转换让你的数据看起来更像高斯分布,然后再把数据输入到我们的学习算法中去。
如何得到异常检测算法的特征变量及创建新的feature(误差分析)

通过误差分析,先完整地训练出学习算法,然后在交叉验证集上运行算法,找出那些预测出错的样本,然后看看能否找出一些其它的特征来帮助学习算法,让其在交叉验证时表现更好。
在异常检测系统中,我们希望p(x)的值对于正常样本来说较大,对于异常样本来说是很小的
误差分析的过程:如现在有一个特征x1服从如图所示的正态分布,现在有一个异常样本(绿色所示),它在这个正态分布里面的概率值较大,即我们没有将其分离出来。那么我们看看到底是哪个具体的样本出了问题,通过这个样本来启发我能不能找到一个新的feature来帮助算法来区分出这个不好的样本。即创建一个新的特征x2,有了这个新的特征变量x2我们就能更好地区分出这个异常的样本了。
异常检测算法一些选择features的方法

选择那些可能会取非常非常大的值,或者非常非常小的值的那些features
如在数据中心中我们想监控某台计算机是否出问题了?这时我们可以创建一个新的特征x5=CPU load/network traffic。当机器运行正常时,CPU load与network traffic呈线性的关系。这样当数据中心中的某台机器出了问题时,如被卡住了,这时这台机器的CPU load就会很大,但是network traffic很小,即x5将会非常大,这样我们就可以使用x5来监测机器是否出了问题是否被卡住了。同样也可以创建x6来使用在异常检测算法中。
总结
1>通过对特征进行一些转换来让数据更像正态分布,再将这些特征输入异常检测算法中去
2>误差分析方法来建立新的特征,即找到新的特征将异常样本分开
3>选择那些当出现异常时,值非常非常大或者非常非常小的特征
如何开发一个异常检测系统:使用什么特征变量(features)来构建异常检测算法的更多相关文章
- Django完整的开发一个博客系统
今天花了一些时间搭了一个博客系统,虽然并没有相关于界面的美化,但是发布是没问题的. 开发环境 操作系统:windows 7 64位 Django: 1.96 Python:2.7.11 IDE: Py ...
- 开发一个基于 Android系统车载智能APP
很久之前就想做一个车载相关的app.需要实现如下功能: (1)每0.2秒更新一次当前车辆的最新速度值. (2)可控制性记录行驶里程. (3)不连接网络情况下获取当前车辆位置.如(北京市X区X路X号) ...
- HBase概念学习(八)开发一个类twitter系统之表设计
这边文章先将可能的需求分析一下,设计出HBase表,下一步再開始编写client代码. TwiBase系统 1.背景 为了加深HBase基本概念的学习,參考HBase实战这本书实际动手做了这个样例. ...
- LSTM UEBA异常检测——deeplog里其实提到了,就是多分类LSTM算法,结合LSTM预测误差来检测异常参数
结合CNN的可以参考:http://fcst.ceaj.org/CN/article/downloadArticleFile.do?attachType=PDF&id=1497 除了行为,其他 ...
- C#开发PACS医学影像处理系统(二):界面布局之菜单栏
在菜单栏布局上,为了使用自定义窗体样式和按钮,我们需要先将窗体设置为无边框,然后添加一个Grid作为菜单栏并置顶,VerticalAlignment="Top" logo图片和标题 ...
- C#开发PACS医学影像处理系统(十二):绘图处理之图形标记
在医生实际使用过程中,对于有病灶的影像需要一些2D绘图操作,例如对于病灶的标记和测量, 这就牵涉到在WPF中的2D绘图操作技术,一般的思路是监听鼠标的按下和抬起以及运动轨迹,目前整理出的常用绘图和测量 ...
- C#开发PACS医学影像处理系统(十三):绘图处理之病灶测量
接上一篇文章,当我们可以绘制图形标记后,就可以在此操作类上面进行扩展, 比如测量类工具,目前整理出的常用绘图和测量功能如下: 测量工具类:(图形标记类请参考本系列文章:绘图处理之图形标记) 功能 说明 ...
- C#开发PACS医学影像处理系统(三):界面布局之工具栏
工具栏布局采用WPF中Grid作为容器,按钮采用自定义样式和图标,并采用Separator分割线: XAML设计器代码: 其中 Style="{StaticResource ButtonS ...
- C#开发PACS医学影像处理系统(六):加载Dicom影像
对于一款软件的扩展性和维护性来说,上层业务逻辑和UI表现一定要自己开发才有控制权,否则项目上线之后容易被掣肘, 而底层图像处理,我们不需要重复造轮子,这里推荐使用fo-dicom,同样基于Dicom3 ...
随机推荐
- windows7 安装 docker-compose
这篇博客,默认你已经安装了docker,下面介绍如何安装docker-compose 1.访问docker-compose的git地址 2.找到最新版的docker-compose 3.打开Docke ...
- Android启动脚本init.rc说明文档readme.txt翻译
Android Init Language--------------------- Android初始化语言--------------------- The Android Init Langua ...
- sqlserver替换一个单引号为多个单引号
SqlServer Where语句中如果有单引号,需要替换为两个单引号,不然会语法错误,替换方法如下REPLACE(@UserName,'''','''''') REPLACE(@UserName,' ...
- How to let your website login with domain account when using IIS to deploy it?
如何让你的网站以域账号登录 Select your website in IIS Manager, open Authentication, enable Windows Authentication ...
- 关于AQS的一点总结
关于AQS的一点总结 2017年03月13日 09:48:13 那只是一股逆流 阅读数:772 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/ ...
- - Git常用命令 基础 总结 MD
目录 目录 Git常用命令 帮助 help 常用操作 初始化 clone init 提交 push 暂存 更新 撤销修改 分支 branch 查看分支 创建分支 切换分支 checkout 删除分支 ...
- java中什么是抽象类(abstract)
一.什么是抽象类 由abstract修饰的方法叫抽象方法:由abstract修饰的类叫抽象类.抽象的类无法进行实例化,因为他不是具体存在的类,或者说这样的类还不够完善,不能直接使用new关键字调用其构 ...
- ML学习笔记之LATEX数学公式基本语法
作者:@houkai本文为作者原创,转载请注明出处:https://www.cnblogs.com/houkai/p/3399646.html 0x00 概述 TEX 是Donald E. Knuth ...
- texstudio基本设置
一开始默认为英文,在上面菜单栏,“option” 1.设置中文:options->general->language->zh-cn 2.编辑和查看按钮: 3.设置默认编译器:选项-& ...
- Ubuntu18.04 配置网卡、替换软件源
2019/10/29, Ubuntu Server 18.04 摘要:Ubuntu Server 18.04 采用netplan作为网络配置管理,修改IP使其连上网络,修改替换软件源 修改网卡配置 首 ...