如何构建与选择异常检测算法中的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)来构建异常检测算法的更多相关文章

  1. Django完整的开发一个博客系统

    今天花了一些时间搭了一个博客系统,虽然并没有相关于界面的美化,但是发布是没问题的. 开发环境 操作系统:windows 7 64位 Django: 1.96 Python:2.7.11 IDE: Py ...

  2. 开发一个基于 Android系统车载智能APP

    很久之前就想做一个车载相关的app.需要实现如下功能: (1)每0.2秒更新一次当前车辆的最新速度值. (2)可控制性记录行驶里程. (3)不连接网络情况下获取当前车辆位置.如(北京市X区X路X号) ...

  3. HBase概念学习(八)开发一个类twitter系统之表设计

    这边文章先将可能的需求分析一下,设计出HBase表,下一步再開始编写client代码. TwiBase系统 1.背景 为了加深HBase基本概念的学习,參考HBase实战这本书实际动手做了这个样例. ...

  4. LSTM UEBA异常检测——deeplog里其实提到了,就是多分类LSTM算法,结合LSTM预测误差来检测异常参数

    结合CNN的可以参考:http://fcst.ceaj.org/CN/article/downloadArticleFile.do?attachType=PDF&id=1497 除了行为,其他 ...

  5. C#开发PACS医学影像处理系统(二):界面布局之菜单栏

    在菜单栏布局上,为了使用自定义窗体样式和按钮,我们需要先将窗体设置为无边框,然后添加一个Grid作为菜单栏并置顶,VerticalAlignment="Top" logo图片和标题 ...

  6. C#开发PACS医学影像处理系统(十二):绘图处理之图形标记

    在医生实际使用过程中,对于有病灶的影像需要一些2D绘图操作,例如对于病灶的标记和测量, 这就牵涉到在WPF中的2D绘图操作技术,一般的思路是监听鼠标的按下和抬起以及运动轨迹,目前整理出的常用绘图和测量 ...

  7. C#开发PACS医学影像处理系统(十三):绘图处理之病灶测量

    接上一篇文章,当我们可以绘制图形标记后,就可以在此操作类上面进行扩展, 比如测量类工具,目前整理出的常用绘图和测量功能如下: 测量工具类:(图形标记类请参考本系列文章:绘图处理之图形标记) 功能 说明 ...

  8. C#开发PACS医学影像处理系统(三):界面布局之工具栏

    工具栏布局采用WPF中Grid作为容器,按钮采用自定义样式和图标,并采用Separator分割线: XAML设计器代码: 其中  Style="{StaticResource ButtonS ...

  9. C#开发PACS医学影像处理系统(六):加载Dicom影像

    对于一款软件的扩展性和维护性来说,上层业务逻辑和UI表现一定要自己开发才有控制权,否则项目上线之后容易被掣肘, 而底层图像处理,我们不需要重复造轮子,这里推荐使用fo-dicom,同样基于Dicom3 ...

随机推荐

  1. windows7 安装 docker-compose

    这篇博客,默认你已经安装了docker,下面介绍如何安装docker-compose 1.访问docker-compose的git地址 2.找到最新版的docker-compose 3.打开Docke ...

  2. Android启动脚本init.rc说明文档readme.txt翻译

    Android Init Language--------------------- Android初始化语言--------------------- The Android Init Langua ...

  3. sqlserver替换一个单引号为多个单引号

    SqlServer Where语句中如果有单引号,需要替换为两个单引号,不然会语法错误,替换方法如下REPLACE(@UserName,'''','''''') REPLACE(@UserName,' ...

  4. 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 ...

  5. 关于AQS的一点总结

    关于AQS的一点总结 2017年03月13日 09:48:13 那只是一股逆流 阅读数:772    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/ ...

  6. - Git常用命令 基础 总结 MD

    目录 目录 Git常用命令 帮助 help 常用操作 初始化 clone init 提交 push 暂存 更新 撤销修改 分支 branch 查看分支 创建分支 切换分支 checkout 删除分支 ...

  7. java中什么是抽象类(abstract)

    一.什么是抽象类 由abstract修饰的方法叫抽象方法:由abstract修饰的类叫抽象类.抽象的类无法进行实例化,因为他不是具体存在的类,或者说这样的类还不够完善,不能直接使用new关键字调用其构 ...

  8. ML学习笔记之LATEX数学公式基本语法

    作者:@houkai本文为作者原创,转载请注明出处:https://www.cnblogs.com/houkai/p/3399646.html 0x00 概述 TEX 是Donald E. Knuth ...

  9. texstudio基本设置

    一开始默认为英文,在上面菜单栏,“option” 1.设置中文:options->general->language->zh-cn 2.编辑和查看按钮: 3.设置默认编译器:选项-& ...

  10. Ubuntu18.04 配置网卡、替换软件源

    2019/10/29, Ubuntu Server 18.04 摘要:Ubuntu Server 18.04 采用netplan作为网络配置管理,修改IP使其连上网络,修改替换软件源 修改网卡配置 首 ...