异常检测算法Robust Random Cut Forest(RRCF)关键定理引理证明
摘要: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)关键定理引理证明的更多相关文章
- 基于RRCF(robust random cut forest)的时间序列异常检测流程
摘要:RRCF是亚马逊提出的一个流式异常检测算法,是对孤立森林的改进,可对时序或非时序数据进行异常检测.本文是我从事AIOps研发工作时所做的基于RRCF的时序异常检测方案. 1. 数据格式 ...
- 异常检测算法--Isolation Forest
南大周志华老师在2010年提出一个异常检测算法Isolation Forest,在工业界很实用,算法效果好,时间效率高,能有效处理高维数据和海量数据,这里对这个算法进行简要总结. iTree 提到森林 ...
- 异常检测算法:Isolation Forest
iForest (Isolation Forest)是由Liu et al. [1] 提出来的基于二叉树的ensemble异常检测算法,具有效果好.训练快(线性复杂度)等特点. 1. 前言 iFore ...
- 机器学习:异常检测算法Seasonal Hybrid ESD及R语言实现
Twritters的异常检测算法(Anomaly Detection)做的比较好,Seasonal Hybrid ESD算法是先用STL把序列分解,考察残差项.假定这一项符合正态分布,然后就可以用Ge ...
- 【机器学习】异常检测算法(I)
在给定的数据集,我们假设数据是正常的 ,现在需要知道新给的数据Xtest中不属于该组数据的几率p(X). 异常检测主要用来识别欺骗,例如通过之前的数据来识别新一次的数据是否存在异常,比如根据一个用户以 ...
- kaggle信用卡欺诈看异常检测算法——无监督的方法包括: 基于统计的技术,如BACON *离群检测 多变量异常值检测 基于聚类的技术;监督方法: 神经网络 SVM 逻辑回归
使用google翻译自:https://software.seek.intel.com/dealing-with-outliers 数据分析中的一项具有挑战性但非常重要的任务是处理异常值.我们通常将异 ...
- 如何开发一个异常检测系统:使用什么特征变量(features)来构建异常检测算法
如何构建与选择异常检测算法中的features 如果我的feature像图1所示的那样的正态分布图的话,我们可以很高兴地将它送入异常检测系统中去构建算法. 如果我的feature像图2那样不是正态分布 ...
- 异常检测(Anomaly detection): 异常检测算法(应用高斯分布)
估计P(x)的分布--密度估计 我们有m个样本,每个样本有n个特征值,每个特征都分别服从不同的高斯分布,上图中的公式是在假设每个特征都独立的情况下,实际无论每个特征是否独立,这个公式的效果都不错.连乘 ...
- 异常检测算法的Octave仿真
在基于高斯分布的异常检测算法一文中,详细给出了异常检测算法的原理及其公式,本文为该算法的Octave仿真.实例为,根据训练样例(一组网络服务器)的吞吐量(Throughput)和延迟时间(Latenc ...
随机推荐
- 「UOJ 514」通用测评号(生成函数)
首先,题目中的过程可以看作:每次选择任意一个燃料仓,给它装填 \(1\) 单位的燃料,如果此时恰好 "填满" 了它,就给答案 \(+1\). 考虑 \(n\) 号燃料仓填满的概率, ...
- ACM常用的C++ && STL
内容 c++输入输出 c++ string vector:不定长数组 map:映射 queue:队列 sort:排序 priority_queue:优先队列 c++输入输出 1 #include &l ...
- java 实现快速排序
package leetcode;public class Singleton { public static void sort(int[] array,int low,int high){ int ...
- P2260 [清华集训2012]模积和 【整除分块】
一.题目 P2260 [清华集训2012]模积和 二.分析 参考文章:click here 具体的公式推导可以看参考文章.博主的证明很详细. 自己在写的时候问题不在公式推导,公式还是能够比较顺利的推导 ...
- CSS中的块级元素,行内元素,行内块元素
博客转载于:https://blog.csdn.net/swebin/article/details/90405950 块级元素 block 块级元素,该元素呈现块状,所以他有自己的宽度和高度,也就是 ...
- Java并发编程之队列
Deque(双端队列) 子接口BlockingDeque,实现类如下: ArrayDeque:大下可变的数组双端队列,不允许插入null LinkedList:大小可变的链表双端队列,允许插入null ...
- 未来直播 “神器”,像素级视频分割是如何实现的 | CVPR 冠军技术解读
被誉为计算机视觉领域 "奥斯卡" 的 CVPR 刚刚落下帷幕,2021 年首届 "新内容 新交互" 全球视频云创新挑战赛正火热进行中,这两场大赛都不约而同地将关 ...
- 最小生成树,Prim和Kruskal的原理与实现
文章首先于微信公众号:小K算法,关注第一时间获取更新信息 1 新农村建设 大清都亡了,我们村还没有通网.为了响应国家的新农村建设的号召,村里也开始了网络工程的建设. 穷乡僻壤,人烟稀少,如何布局网线, ...
- Spring Cloud 升级之路 - 2020.0.x - 2. 使用 Undertow 作为我们的 Web 服务容器
本项目代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford 在我们的项目中,我 ...
- PhpStorm/WebStorm实用技巧
我常用的IDE设置和功能 1) 使用IDE管理远程主机 Tools -> Deployment -> Browse Remote Host 其中功能十分强大 自己去探索 关键提示: 手动/ ...