iForest (Isolation Forest)是由Liu et al. [1] 提出来的基于二叉树的ensemble异常检测算法,具有效果好、训练快(线性复杂度)等特点。
1. 前言
iForest为聚类算法,不需要标记数据训练。首先给出几个定义:
划分(partition)指样本空间一分为二,相当于决策树中节点分裂;
isolation指将某个样本点与其他样本点区分开。
iForest的基本思想非常简单:完成异常点的isolation所需的划分数大于正常样本点(非异常)。如下图所示:

xi 样本点的isolation需要大概12次划分,而异常点x0指需要4次左右。因此,我们可以根据划分次数来区分是否为异常点。但是,如何建模呢?我们容易想到:划分对应于决策树中节点分裂,那么划分次数即为从决策树的根节点到叶子节点所经历的边数,称之为路径长度(path length)。假设样本集合共有n个样本点,对于二叉查找树(Binary Search Tree, BST),则查找失败的平均路径长度为

其中,H(i)为harmonic number,可估计为ln(i)+0.5772156649。那么,可建模anomaly score:

其中,h(x)为样本点x的路径长度,E(h(x))为iForest的多棵树中样本点x的路径长度的期望。特别地,

当s值越高(接近于1),则表明该点越可能为异常点。若所有的样本点的s值都在0.5左右,则说明该样本集合没有异常点。
2. 详解
iForest采用二叉决策树来划分样本空间,每一次划分都是随机选取一个属性值来做,具体流程如下:

停止分裂条件:
树达到了最大高度;
落在孩子节点的样本数只有一个,或者所有样本点的值均相同;
为了避免错检(swamping)与漏检(masking),在训练每棵树的时候,为了更好地区分,不会拿全量样本,而会sub-sampling样本集合。iForest的训练流程如下:

sklearn给出了iForest与其他异常检测算法的比较。
相关推荐
首先,我们先从整体上来看一下 YOLO v3 是如何工作的。YOLO v3 算法通过将图像划分为 ....
新机器视觉 发表于 05-07 15:34
•
807次
阅读
遍历顺序上依然是后序遍历(因为要比较递归返回之后的结果),但在处理中间节点的逻辑上,最大深度很容易理....
完全二叉树:完全二叉树是效率很高的数据结构。对于深度为K,有n个节点的二叉树,当且仅当每一个节点都与....
二叉查找树也叫二叉搜索树,也叫二叉排序树,它具有以下特点:1. 如果左子树不为空,则左子树上的结点的....
二叉树上应该怎么求,二叉搜索树上又应该怎么求? 在求众数集合的时候有一个技巧,因为题目中众数是可....
该资料包括数据结构与算法分析中的二叉树与堆有关的一些知识
发表于 11-03 09:37 •
139次
阅读
什么是AVL树 大家好,我是bigsai,好久不见,甚是想念,今天给大家讲讲AVL树。 对于树这....
大家好,我是吴师兄,直接开始今天的算法学习,冲冲冲。 一、题目描述 从上到下打印出二叉树的每个节点,....
如果不对递归有深刻的理解,本题有点难。单纯移除一个节点那还不够,要修剪! 669. 修剪二叉搜索....
本期是C++基础语法分享的第十四节,今天给大家来梳理一下树! 二叉树 BinaryTree.cp....
这道题目是非常经典的题目,也是比较简单的题目(至少一看就会)。 但正是因为这道题太简单,一看就会,一....
新材料在线 发表于 09-01 11:45
•
930次
阅读
题目 已知二叉树前序为 ABDFGCEH 后序序列为 BFDGACEH ,要求输出后序遍历为 FGD....
以为只用了递归,其实还用了回溯 257. 二叉树的所有路径 题目地址:https://leetcod....
新材料在线 发表于 08-13 17:51
•
1507次
阅读
最近想试验一下在单片机上能不能将车道线检测算法跑起来,也作为一个了解单片机和用C语言手撸图像处理算法的学习机会。这一系列...
发表于 07-15 09:35 •
260次
阅读
两通道DPCA动目标检测原理是什么?
基于机载单通道SAR数据的地面运动目标检测算法
...
发表于 06-03 06:04 •
462次
阅读
我们之前说了二叉树基础及二叉的几种遍历方式及练习题,今天我们来看一下二叉树的前序遍历非递归实现。 前....
什么是同步检测算法?
如何去实现相位模糊估计的帧同步检测算法?
...
发表于 05-06 07:23 •
386次
阅读
可以从几个维度去看这个问题,查询是否够快,效率是否稳定,存储数据多少,以及查找磁盘次数等等。为什么不....
心电图(ECG)的心率变异性(HRV)是一种著名的诊断方法,用于评估心脏的自主神经功能。为了更方便地评估心脏功能,可...
发表于 01-28 06:02 •
1238次
阅读
ATS699采用了专利算法,可满足汽车变速箱应用等特殊要求,待测目标的速度和方向能够通过可变脉宽输出....
AI技术发展已进入高速时代,企业纷纷探索利用人工智能技术为其行业赋能;因此,我们需要一款能够将高性能....
发表于 11-26 14:51 •
1032次
阅读
像上面的这样的二叉树状决策在我们生活中很常见,而这样的选择方法就是决策树。机器学习的方法就是通过平时....
该工具可在与周围浓淡等级进行比较的同时检测瑕疵和污点等缺陷。不仅具备卓越的检测能力,还可仅筛选出大小....
新机器视觉 发表于 09-24 13:08
•
3448次
阅读
Max Howell 就是 Homebrew 的创作者,也是一名业内知名的 MacOS / iOS ....
通常,克罗恩氏病和溃疡性结肠炎等结肠相关疾病需要通过侵入性测试来诊断。然而多亏了可以通过分析患者粪便....
发表于 07-13 17:24 •
373次
阅读
以本题的序列为例,前序遍历序列的第一个数字 3 就是根结点的值,在中序遍历序列,找到根结点值的位置。....
平衡(Balance):就是当结点数量固定时,左右子树的高度越接近,这棵二叉树越平衡(高度越低)。而....
因为是二叉搜索树,对于树上每个节点来说,其 右子树的节点都要大于其左子树的节点 ,那么要找对应节点,....
对于求区间和的问题,前缀和数组 是一个不错的选择,构建好前缀和数组后,求一个区间和的话只要前后一减就....
根据前、中序遍历的特点,(根左右、左根右),先根据前序遍历确定根节点,然后在中序遍历知道该根节点的左....
那么问题来了,只知道前序遍历能不能反推二叉树呢?我们就试一下,比如题目中所述,{1,2,4,7,3,....
要知道 Faster R-CNN已经是2015年提出的论文了,而YOLOv3发表出来也已经一年多了。....
新智元 发表于 07-13 08:10
•
13440次
阅读
在这个项目中并不是对所有内容都进行了详细介绍,有部分主题的代码非常丰富。为了帮助大家高效地利用这一学....
然后我们再定义一棵深度也为 3 的二叉树,该二叉树的 n 个结点(n≤7),当从 1 到 n 的每个....
人工智能头条 发表于 04-13 10:48
•
3110次
阅读
图的遍历是指,从给定图中任意指定的顶点(称为初始点)出发,按照某种搜索方法沿着图的边访问图中的所有顶....
趁着这个植树节,普及一下程序猿们经常遇见的树。B树的插入会发生结点的分裂操作。当插入操作引起了 s ....
根据设定的目标区域特点,如长宽、长宽比等,来判断该区域是否满足要求,如果满足,则放到rectlist....
对于一种数据结构而言,遍历是常见操作。二叉树是一种基本的数据结构,是一种每个节点的儿子数目都不多于2....
多输入多输出( Multiple Input Multiple Output,MIMO)技术随着4G....
发表于 04-24 16:52 •
604次
阅读
数字视频篡改取证检测现已成为信号处理领域的一个研究热点。现如今我们的日常生活中随处可见到可以记录视频....
发表于 04-19 11:01 •
651次
阅读
从前面分析情况来看,减少磁盘IO的次数就必须要压缩树的高度,让瘦高的树尽量变成矮胖的树,所以B-Tr....
该文提出了一种基于EEMD域统计模型的话音激活检测算法。算法首先利用总体平均经验模态分解(Ensem....
发表于 03-06 17:55 •
589次
阅读
针对现代化工厂巾视觉机器人或智能终端处理多目标检测算法的计算任务繁重、运算速度较慢等问题,将网络通信....
发表于 03-02 10:51 •
775次
阅读
针对边缘检测中存在的噪声敏感性问题。本文根据Mallat快速小波变换算法的思想,提出用高斯函数和其一....
发表于 02-28 15:46 •
555次
阅读
随着机动车的普及,交通事故数量不断增长,而许多事故的产生是由于驾驶员对道路状况的疏忽或受到其他视觉干....
发表于 02-24 09:08 •
572次
阅读
传感器工作环境中的振动、噪声、信道干扰、火灾等都可能导致传感器错误感知数据甚至永久故障,为防止产生错....
发表于 02-08 14:36 •
688次
阅读
最近总结了一些数据结构和算法相关的题目,这是第一篇文章,关于二叉树的。
数据竞争是引起多核程序发生并发错误的主要原因。针对现有基于硬件的happens-before数据竞争....
发表于 02-07 13:33 •
535次
阅读
基于Wi-Fi的设备间(D2D,device to device)通信是指Wi-Fi终端设备无需基础....
发表于 02-06 14:45 •
652次
阅读
红黑树是一种自平衡的二叉查找树,是一种高效的查找树。它是由 Rudolf Bayer 于1972年发....
干扰攻击会导致节点状态跳转规律发生变化。为此,在节点状态跳转统计分析的基础上,提出一种改进的干扰检测....
发表于 02-01 17:18 •
551次
阅读
近年来,无人车成为热门研究方向。障碍物检测是无人车研究中的一个重要组成部分,无人车行驶的环境主要包括....
发表于 02-01 16:14 •
1279次
阅读
树叶遮挡检测属于智能安防技术中的视频遮挡异常检测范畴。树叶遮挡主要是由于监控点位置不可变,因时间和季....
发表于 02-01 13:35 •
560次
阅读
针对监控视频中的电线杆遮挡问题,提出一种改进的线段分割检测(LSD)算法。将RGB图像进行双边滤波,....
发表于 01-25 15:11 •
503次
阅读
评论