创作

完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>

3天内不再提示

基于二叉树的ensemble异常检测算法

lviY_AI_shequ 来源:lq 2018-12-11 16:57 次阅读

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与其他异常检测算法的比较。

  • 检测算法
    +关注

    关注

    0

    文章

    102

    浏览量

    24131
  • 二叉树
    +关注

    关注

    0

    文章

    43

    浏览量

    11093
收藏 人收藏

    评论

    相关推荐

    图解目标检测算法的网络架构和基本流程

    首先,我们先从整体上来看一下 YOLO v3 是如何工作的。YOLO v3 算法通过将图像划分为 ....
    的头像 新机器视觉 发表于 05-07 15:34 807次 阅读

    二叉树的最小深度

    遍历顺序上依然是后序遍历(因为要比较递归返回之后的结果),但在处理中间节点的逻辑上,最大深度很容易理....
    的头像 算法与数据结构 发表于 04-28 16:27 478次 阅读

    C语言数据结构:什么是二叉树?

    完全二叉树:完全二叉树是效率很高的数据结构。对于深度为K,有n个节点的二叉树,当且仅当每一个节点都与....
    的头像 C语言编程学习基地 发表于 04-21 16:20 480次 阅读

    如何使用 go 实现红黑树

    二叉查找树也叫二叉搜索树,也叫二叉排序树,它具有以下特点:1. 如果左子树不为空,则左子树上的结点的....
    的头像 Linux爱好者 发表于 03-21 11:54 396次 阅读

    二叉树上应该怎么求

      二叉树上应该怎么求,二叉搜索树上又应该怎么求? 在求众数集合的时候有一个技巧,因为题目中众数是可....
    的头像 算法与数据结构 发表于 11-22 11:32 591次 阅读

    数据结构与算法分析中的二叉树与堆有关知识汇总

    该资料包括数据结构与算法分析中的二叉树与堆有关的一些知识
    发表于 11-03 09:37 139次 阅读

    二叉排序树AVL如何实现动态平衡

      什么是AVL树 大家好,我是bigsai,好久不见,甚是想念,今天给大家讲讲AVL树。 对于树这....
    的头像 算法与数据结构 发表于 10-28 17:02 649次 阅读
    二叉排序树AVL如何实现动态平衡

    算法学习中如何打印二叉树节点

    大家好,我是吴师兄,直接开始今天的算法学习,冲冲冲。 一、题目描述 从上到下打印出二叉树的每个节点,....
    的头像 算法与数据结构 发表于 10-22 09:37 694次 阅读

    如何修剪二叉搜索树

      如果不对递归有深刻的理解,本题有点难。单纯移除一个节点那还不够,要修剪! 669. 修剪二叉搜索....
    的头像 算法与数据结构 发表于 10-11 14:16 623次 阅读

    C++基础语法中的二叉树详解

    本期是C++基础语法分享的第十四节,今天给大家来梳理一下树!   二叉树 BinaryTree.cp....
    的头像 C语言编程学习基地 发表于 09-29 18:02 1111次 阅读

    如何才能够翻转二叉树

    这道题目是非常经典的题目,也是比较简单的题目(至少一看就会)。 但正是因为这道题太简单,一看就会,一....
    的头像 新材料在线 发表于 09-01 11:45 930次 阅读

    C语言编程中如何求出二叉树后序遍历

    题目 已知二叉树前序为 ABDFGCEH 后序序列为 BFDGACEH ,要求输出后序遍历为 FGD....
    的头像 C语言编程基础 发表于 08-23 11:04 2854次 阅读

    二叉树的所有路径介绍

    以为只用了递归,其实还用了回溯 257. 二叉树的所有路径 题目地址:https://leetcod....
    的头像 新材料在线 发表于 08-13 17:51 1507次 阅读
    二叉树的所有路径介绍

    在单片机上能不能将车道线检测算法跑起来

    最近想试验一下在单片机上能不能将车道线检测算法跑起来,也作为一个了解单片机和用C语言手撸图像处理算法的学习机会。这一系列...
    发表于 07-15 09:35 260次 阅读

    求一种基于机载单通道SAR数据的地面运动目标检测算法

    两通道DPCA动目标检测原理是什么? 基于机载单通道SAR数据的地面运动目标检测算法 ...
    发表于 06-03 06:04 462次 阅读

    二叉树的前序遍历非递归实现

    我们之前说了二叉树基础及二叉的几种遍历方式及练习题,今天我们来看一下二叉树的前序遍历非递归实现。 前....
    的头像 算法与数据结构 发表于 05-28 13:59 754次 阅读

    如何去实现相位模糊估计的帧同步检测算法?

    什么是同步检测算法? 如何去实现相位模糊估计的帧同步检测算法? ...
    发表于 05-06 07:23 386次 阅读

    面试官考点之索引是什么?

    可以从几个维度去看这个问题,查询是否够快,效率是否稳定,存储数据多少,以及查找磁盘次数等等。为什么不....
    的头像 数据分析与开发 发表于 03-05 10:37 1131次 阅读
    面试官考点之索引是什么?

    一种可靠的峰值和起始点检测算法

      心电图(ECG)的心率变异性(HRV)是一种著名的诊断方法,用于评估心脏的自主神经功能。为了更方便地评估心脏功能,可...
    发表于 01-28 06:02 1238次 阅读

    ATS699是Allegro推出的一款双线、差分式速度和方向传感器IC

    ATS699采用了专利算法,可满足汽车变速箱应用等特殊要求,待测目标的速度和方向能够通过可变脉宽输出....
    的头像 Allegro微电子 发表于 12-09 10:10 1242次 阅读

    AI算力加速担当—AIM16T,充分展示其优秀的AI性能

    AI技术发展已进入高速时代,企业纷纷探索利用人工智能技术为其行业赋能;因此,我们需要一款能够将高性能....
    发表于 11-26 14:51 1032次 阅读
    AI算力加速担当—AIM16T,充分展示其优秀的AI性能

    建立决策树的逻辑

    像上面的这样的二叉树状决策在我们生活中很常见,而这样的选择方法就是决策树。机器学习的方法就是通过平时....
    的头像 深度学习自然语言处理 发表于 10-10 10:44 1548次 阅读
    建立决策树的逻辑

    机器视觉系统工程中常见问题及处理技巧汇总

    该工具可在与周围浓淡等级进行比较的同时检测瑕疵和污点等缺陷。不仅具备卓越的检测能力,还可仅筛选出大小....
    的头像 新机器视觉 发表于 09-24 13:08 3448次 阅读

    Max Howell因为不会翻转一棵二叉树,被Google拒绝

    Max Howell 就是 Homebrew 的创作者,也是一名业内知名的 MacOS / iOS ....
    的头像 算法与数据结构 发表于 09-03 10:52 9921次 阅读

    电子鼻还可检测肠道疾病

    通常,克罗恩氏病和溃疡性结肠炎等结肠相关疾病需要通过侵入性测试来诊断。然而多亏了可以通过分析患者粪便....
    发表于 07-13 17:24 373次 阅读

    Offer系列面试题0:重建二叉树

    以本题的序列为例,前序遍历序列的第一个数字 3 就是根结点的值,在中序遍历序列,找到根结点值的位置。....
    的头像 算法与数据结构 发表于 07-09 15:03 936次 阅读
    Offer系列面试题0:重建二叉树

    红黑树(Red Black Tree)是一种自平衡的二叉搜索树

    平衡(Balance):就是当结点数量固定时,左右子树的高度越接近,这棵二叉树越平衡(高度越低)。而....
    的头像 算法与数据结构 发表于 07-01 15:05 1750次 阅读
    红黑树(Red Black Tree)是一种自平衡的二叉搜索树

    删除二叉搜索树中的节点

    因为是二叉搜索树,对于树上每个节点来说,其 右子树的节点都要大于其左子树的节点 ,那么要找对应节点,....
    的头像 算法与数据结构 发表于 06-23 10:33 2035次 阅读
    删除二叉搜索树中的节点

    一个数据结构-线段树

    对于求区间和的问题,前缀和数组 是一个不错的选择,构建好前缀和数组后,求一个区间和的话只要前后一减就....
    的头像 算法与数据结构 发表于 05-06 11:02 2180次 阅读
    一个数据结构-线段树

    面试二叉树看这11个就够了

    根据前、中序遍历的特点,(根左右、左根右),先根据前序遍历确定根节点,然后在中序遍历知道该根节点的左....
    的头像 算法与数据结构 发表于 11-27 16:25 2656次 阅读

    面试算法之重建二叉树

    那么问题来了,只知道前序遍历能不能反推二叉树呢?我们就试一下,比如题目中所述,{1,2,4,7,3,....
    的头像 算法与数据结构 发表于 11-27 15:59 1840次 阅读

    盘点一下mAP最高的目标检测算法

    要知道 Faster R-CNN已经是2015年提出的论文了,而YOLOv3发表出来也已经一年多了。....
    的头像 新智元 发表于 07-13 08:10 13440次 阅读
    盘点一下mAP最高的目标检测算法

    一份用Python代码实现算法的资源帖,涵盖从入门到高级的各类算法

    在这个项目中并不是对所有内容都进行了详细介绍,有部分主题的代码非常丰富。为了帮助大家高效地利用这一学....
    的头像 city_prolove 发表于 05-11 10:30 2165次 阅读
    一份用Python代码实现算法的资源帖,涵盖从入门到高级的各类算法

    二叉树,一种基础的数据结构类型

    然后我们再定义一棵深度也为 3 的二叉树,该二叉树的 n 个结点(n≤7),当从 1 到 n 的每个....
    的头像 人工智能头条 发表于 04-13 10:48 3110次 阅读
    二叉树,一种基础的数据结构类型

    数据结构与算法:图的遍历过程中,搜索方法的不同

    图的遍历是指,从给定图中任意指定的顶点(称为初始点)出发,按照某种搜索方法沿着图的边访问图中的所有顶....
    的头像 city_prolove 发表于 04-04 16:40 2772次 阅读
    数据结构与算法:图的遍历过程中,搜索方法的不同

    普及一下程序猿们经常遇见的树

    趁着这个植树节,普及一下程序猿们经常遇见的树。B树的插入会发生结点的分裂操作。当插入操作引起了 s ....
    的头像 city_prolove 发表于 03-13 09:31 2241次 阅读

    基于canny边缘检测的连通域检测算法

    根据设定的目标区域特点,如长宽、长宽比等,来判断该区域是否满足要求,如果满足,则放到rectlist....
    的头像 C语言专家集中营 发表于 01-22 13:54 3062次 阅读

    4中二叉树的遍历方式介绍

    对于一种数据结构而言,遍历是常见操作。二叉树是一种基本的数据结构,是一种每个节点的儿子数目都不多于2....
    的头像 人工智能爱好者社区 发表于 04-27 17:23 3865次 阅读
    4中二叉树的遍历方式介绍

    一种新的低复杂度次最优检测算法

    多输入多输出( Multiple Input Multiple Output,MIMO)技术随着4G....
    发表于 04-24 16:52 604次 阅读
    一种新的低复杂度次最优检测算法

    基于主成分分析的篡改检测算法

    数字视频篡改取证检测现已成为信号处理领域的一个研究热点。现如今我们的日常生活中随处可见到可以记录视频....
    发表于 04-19 11:01 651次 阅读

    B-Tree与二叉查找树的对比

    从前面分析情况来看,减少磁盘IO的次数就必须要压缩树的高度,让瘦高的树尽量变成矮胖的树,所以B-Tr....
    的头像 Linux阅码场 发表于 04-15 10:54 7870次 阅读
    B-Tree与二叉查找树的对比

    基于EEMD话音激活检测算法

    该文提出了一种基于EEMD域统计模型的话音激活检测算法。算法首先利用总体平均经验模态分解(Ensem....
    发表于 03-06 17:55 589次 阅读

    基于SSD网络模型的多目标检测算法

    针对现代化工厂巾视觉机器人或智能终端处理多目标检测算法的计算任务繁重、运算速度较慢等问题,将网络通信....
    发表于 03-02 10:51 775次 阅读

    多尺度积图像边缘检测算法

    针对边缘检测中存在的噪声敏感性问题。本文根据Mallat快速小波变换算法的思想,提出用高斯函数和其一....
    发表于 02-28 15:46 555次 阅读

    动态感兴趣区域的光照无关车道线检测算法

    随着机动车的普及,交通事故数量不断增长,而许多事故的产生是由于驾驶员对道路状况的疏忽或受到其他视觉干....
    发表于 02-24 09:08 572次 阅读
    动态感兴趣区域的光照无关车道线检测算法

    基于可信度传感器故障检测算法

    传感器工作环境中的振动、噪声、信道干扰、火灾等都可能导致传感器错误感知数据甚至永久故障,为防止产生错....
    发表于 02-08 14:36 688次 阅读
    基于可信度传感器故障检测算法

    关于二叉树一些数据结构和算法相关的题目

    最近总结了一些数据结构和算法相关的题目,这是第一篇文章,关于二叉树的。
    的头像 算法与数据结构 发表于 02-07 13:57 2477次 阅读

    基于滑动窗口的多核程序数据竞争硬件检测算法

    数据竞争是引起多核程序发生并发错误的主要原因。针对现有基于硬件的happens-before数据竞争....
    发表于 02-07 13:33 535次 阅读
    基于滑动窗口的多核程序数据竞争硬件检测算法

    基于Wi-Fi接口的数据分组检测算法

    基于Wi-Fi的设备间(D2D,device to device)通信是指Wi-Fi终端设备无需基础....
    发表于 02-06 14:45 652次 阅读
    基于Wi-Fi接口的数据分组检测算法

    一文详解红黑树

    红黑树是一种自平衡的二叉查找树,是一种高效的查找树。它是由 Rudolf Bayer 于1972年发....
    的头像 算法与数据结构 发表于 02-02 17:25 3530次 阅读
    一文详解红黑树

    一种改进的干扰检测算法

    干扰攻击会导致节点状态跳转规律发生变化。为此,在节点状态跳转统计分析的基础上,提出一种改进的干扰检测....
    发表于 02-01 17:18 551次 阅读
    一种改进的干扰检测算法

    基于单线激光雷达和单目视觉的负障碍检测算法

    近年来,无人车成为热门研究方向。障碍物检测是无人车研究中的一个重要组成部分,无人车行驶的环境主要包括....
    发表于 02-01 16:14 1279次 阅读
    基于单线激光雷达和单目视觉的负障碍检测算法

    基于支持向量机的视频树叶遮挡检测算法

    树叶遮挡检测属于智能安防技术中的视频遮挡异常检测范畴。树叶遮挡主要是由于监控点位置不可变,因时间和季....
    发表于 02-01 13:35 560次 阅读

    一种改进的线段分割检测算法

    针对监控视频中的电线杆遮挡问题,提出一种改进的线段分割检测(LSD)算法。将RGB图像进行双边滤波,....
    发表于 01-25 15:11 503次 阅读
    一种改进的线段分割检测算法