Isolation Forest(以下简称iForest)算法是由南京大学的周志华和澳大利亚莫纳什大学的Fei Tony Liu, Kai Ming Ting等人共同提出,用于挖掘异常数据【Isolation Forest,Isolation-based Anomaly Detection】。该算法基于异常数据的两个特征:(1)异常数据只占少量;(2)异常数据特征值和正常数据差别很大。iForest算法由于简单高效的特点,常用于网络安全中的攻击检测和流量异常等分析【A survey of network anomaly detection techniques】。

iForest算法得益于随机森林的思想,与随机森林由大量决策树组成一样,iForest森林也由大量的二叉树组成。iForest中的树叫isolation tree,简称iTree。iTree树和决策树不太一样,其构建过程也比决策树简单,是一个完全随机的过程。

假设数据集有N条数据,构建一颗iTree时,从N条数据中均匀抽样(一般是无放回抽样)出ψ个样本出来,作为这颗树的训练样本。在样本中,随机选一个特征,并在这个特征的所有值范围内(最小值与最大值之间)随机选一个值,对样本进行二叉划分,将样本中小于该值的划分到节点的左边,大于等于该值的划分到节点的右边。由此得到一个分裂条件和左、右两边的数据集,然后分别在左右两边的数据集上重复上面的过程,直到数据集只有一条记录或者达到了树的限定高度。

图1 iForest构建iTree示例,异常数据点(17,17)通常离根节点很近

由于异常数据较小且特征值和正常数据差别很大。因此,构建iTree的时候,异常数据离根更近,而正常数据离根更远。一棵iTree的结果往往不可信,iForest算法通过多次抽取样本,构建多棵二叉树。最后整合所有树的结果,并取平均深度作为最终的输出深度,由此计算数据点的异常分值。

最新文章

  1. MySQL 提高Insert性能
  2. GIT文件的三种状态
  3. backtracking(回溯算法)
  4. Microsoft 2013 新技术学习笔记 二
  5. 【Android菜鸟学习之路】环境搭建问题-修改AVD Path
  6. phpcms 网站迁移服务器
  7. 打地鼠游戏ios源码
  8. Epic - Decimal Number
  9. SOS.dll(SOS 调试扩展)
  10. Java Client for Google Cloud Storage
  11. SQL Server 开发利器 SQL Prompt 6.5 T-SQL智能感知分析器 下载地址 完全破解+使用教程
  12. DDD事件总线
  13. HALCON不支持的设备中,获取图像
  14. typeof() 和 GetType()区是什么
  15. 在Ubuntu中通过update-alternatives切换软件版本
  16. mysql索引及sql执行顺序
  17. Spring中BeanFactory与ApplicationContext的区别
  18. tensorflow实现猫狗大战(分类算法)
  19. u3d中的坐标系
  20. 记录openwrt下补丁apply的过程中出错,但是可以单独打上该补丁

热门文章

  1. 技术分享会(二):SQLSERVER索引介绍
  2. Tfs更新 TfsConfig
  3. XDU 1022 (数论筛法+前缀和)
  4. java 并发——内置锁
  5. Android如何定制一个下拉刷新,上滑加载更多的容器
  6. Python日期字符串比较
  7. iOS开发之HelloKitty(移动社交平台项目)
  8. Django学习笔记之Cookie、Session和自定义分页
  9. DATETIME与TIMESTAMP
  10. Docker 的一些使用心得