摘要:RRCF是亚马逊发表的一篇异常检测算法,是对周志华孤立森林的改进。但是相比孤立森林,具有更为扎实的理论基础。文章的理论论证相对较为晦涩,且没给出详细的证明过程。本文不对该算法进行详尽的描述,仅对其中的关键定理或引理进行证明。

Theorem 1:

对于点集S构成的树RCF(S),假设S的bounding box的边长为P(S),一次切分分离x1和x2的概率为

注意到,切分后,任意一边的bounding box的边长的减少量的期望值为,该期望值满足如下不等式:

因此,每一次切分导致的新子集边长的减少量的期望值至少为

(不等式的证明等价于证明算数均值≤均方根均值,因为f(x)=x²为凸函数,利用Jensen不等式可得)

Lemma 7

(定义两点在树上的距离为:两点的最近共同祖先对应点集的bounding box的边长)

x1、x2的期望距离是:L1(x1,x2)*将x1,x2分离所需的期望步数。

证明:x1,x2在level S’被分离的概率为L1(x1,x2)/P(S’),因此在level S’被分离的期望距离为L1(x1,x2)/P(S’)*P(S’)= L1(x1,x2),如果经过n次(期望分割次数)分割将x1,x2分离,那么x1、x2的期望距离为:

E(x1,x2的距离)==n*L1(x1,x2)

因为每一次切分,将导致新的子集的边长至少减少1/2d,因此经过n次切分,边长最大为:

P(S)*(1-1/2d)n.

又边长不应小于L1(x1,x2),因此:

P(S)*(1-1/2d)n≥L1(x1,x2)

两边取对数,得:

nlog(1-1/2d) ≥log(L1/P(S))

两边取相反数,得:

nlog(1+1/(2d-1))≤log(P(S)/L1)

考虑到limx->0log(1+x)=0,limx->0d(log(1+x))/dx=1,对不等式左侧作一阶泰勒展开:

log(1+1/(2d-1))=1/O(2d-1)

因此,分割次数n被O(d)*log(P(S)/L1)bound住,因此,两点在树上的距离被O(d)*log(P(S)/L1)* L1 bound住。

1范数和p范数的不等关系证明  :

左侧不等式由Jensen不等式可得(f(x)=xp在x≥0一侧是凸函数),右侧显然。

Lemma 9

CODISP(x,Z,|S|)可以高效地计算。

证明:f(y, S, T) − f(y, S − C, T)不等于0的充要条件是,将包含y的节点的兄弟节点所构成的子树整棵全部删除(当然x也包含在这棵子树中)。因此,C的选择范围就变成了:从叶节点x到根节点的路径上的全部子树,而不再是从所有可能的组合中选择。

异常检测算法Robust Random Cut Forest(RRCF)关键定理引理证明的更多相关文章

  1. 基于RRCF(robust random cut forest)的时间序列异常检测流程

    摘要:RRCF是亚马逊提出的一个流式异常检测算法,是对孤立森林的改进,可对时序或非时序数据进行异常检测.本文是我从事AIOps研发工作时所做的基于RRCF的时序异常检测方案. 1.      数据格式 ...

  2. 异常检测算法--Isolation Forest

    南大周志华老师在2010年提出一个异常检测算法Isolation Forest,在工业界很实用,算法效果好,时间效率高,能有效处理高维数据和海量数据,这里对这个算法进行简要总结. iTree 提到森林 ...

  3. 异常检测算法:Isolation Forest

    iForest (Isolation Forest)是由Liu et al. [1] 提出来的基于二叉树的ensemble异常检测算法,具有效果好.训练快(线性复杂度)等特点. 1. 前言 iFore ...

  4. 机器学习:异常检测算法Seasonal Hybrid ESD及R语言实现

    Twritters的异常检测算法(Anomaly Detection)做的比较好,Seasonal Hybrid ESD算法是先用STL把序列分解,考察残差项.假定这一项符合正态分布,然后就可以用Ge ...

  5. 【机器学习】异常检测算法(I)

    在给定的数据集,我们假设数据是正常的 ,现在需要知道新给的数据Xtest中不属于该组数据的几率p(X). 异常检测主要用来识别欺骗,例如通过之前的数据来识别新一次的数据是否存在异常,比如根据一个用户以 ...

  6. kaggle信用卡欺诈看异常检测算法——无监督的方法包括: 基于统计的技术,如BACON *离群检测 多变量异常值检测 基于聚类的技术;监督方法: 神经网络 SVM 逻辑回归

    使用google翻译自:https://software.seek.intel.com/dealing-with-outliers 数据分析中的一项具有挑战性但非常重要的任务是处理异常值.我们通常将异 ...

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

    如何构建与选择异常检测算法中的features 如果我的feature像图1所示的那样的正态分布图的话,我们可以很高兴地将它送入异常检测系统中去构建算法. 如果我的feature像图2那样不是正态分布 ...

  8. 异常检测(Anomaly detection): 异常检测算法(应用高斯分布)

    估计P(x)的分布--密度估计 我们有m个样本,每个样本有n个特征值,每个特征都分别服从不同的高斯分布,上图中的公式是在假设每个特征都独立的情况下,实际无论每个特征是否独立,这个公式的效果都不错.连乘 ...

  9. 异常检测算法的Octave仿真

    在基于高斯分布的异常检测算法一文中,详细给出了异常检测算法的原理及其公式,本文为该算法的Octave仿真.实例为,根据训练样例(一组网络服务器)的吞吐量(Throughput)和延迟时间(Latenc ...

随机推荐

  1. 代码审查:从 ArrayList 说线程安全

    本文从代码审查过程中发现的一个 ArrayList 相关的「线程安全」问题出发,来剖析和理解线程安全. 案例分析 前两天在代码 Review 的过程中,看到有小伙伴用了类似以下的写法: List< ...

  2. wireshark如何抓取分析https的加密报文

    [问题概述] https流量基于ssl/tls加密,无法直接对报文进行分析. [解决方案] 方案1 -- 利用"中间人攻击"的代理方式抓包分析.整个方案过程比较简单,这里不赘述,大 ...

  3. android分析之Condition

    Condition的含义是条件变量,其实现依赖于系统,一般都要配合Mutex使用,使用步骤为:给mutex上锁(Lock),调用wait等待"条件"发生,如果没有发生则re-wai ...

  4. get和post的区别主要有以下几方面

    1.url可见性: get,参数url可见: post,url参数不可见 2.数据传输上: get,通过拼接url进行传递参数: post,通过body体传输参数 3.缓存性: get请求是可以缓存的 ...

  5. LAMP环境搭建与配置

    下载mysql 解压 运行错误 下载插件 启动成功 安装Apache 解压 报错  安装插件 再次报错 修改文档 成功 安装插件 下载 安装php 安装完成 解析php 安装完成 虚拟主机(共享主机, ...

  6. find文本处理(locate)实例学习记录

    find文本处理(locate)实例学习记录 (一)按文件名称查找 按照文件名称查找是 find 最常见的用法,需要注意的是,搜索的文件名必须完全匹配,才能找到对应的文件. 1. 查找当前目录下所有 ...

  7. [倍增][换根DP]luogu P5024 保卫王国

    题面 https://www.luogu.com.cn/problem/P5024 分析 可以对有限制的点对之间的链进行在倍增上的DP数组合并. 需要通过一次正向树形DP和一次换根DP得到g[0][i ...

  8. Android学习之服务初体验

    •概念 Service(服务)是一个长期运行在后台,没有用户界面的应用组件,即使切换到另一个应用程序或者后台,服务也可以正常运行: 因此,服务适合执行一些不需要显示界面的后台耗时操作,比如下载网络数据 ...

  9. .NET 6 Preview 3 中 ASP.NET Core 的更新和改进

    原文:bit.ly/2Qb56NP 作者:Daniel Roth 译者:精致码农-王亮 .NET 6 预览版 3 现已推出,其中包括许多对新的 ASP.NET Core 改进.以下是本次预览版的新内容 ...

  10. PBRT阅读笔记——COLOR AND RADIOMETRY

    四个关键概念 Energy(Q)   每一个光子都有特定的波长并携带特定的能量:      其中c为光速,h为普朗克常量. Flux(Φ)   辐射通量,可以直观理解为功率.是能量对时间微分得到的   ...