异常检测算法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 ...
随机推荐
- MySQL二进制安装脚本
MySQL二进制包自行百度,晚上很多查找办法 #!/bin/bash #二进制安装mysql并初始化密码为123456 mysql_name=mysql-5.7.31-linux-glibc2.12- ...
- YoloV3 记录
常用于目标检测,因为最近要从目标分类问题转到目标检测中去. tensoflow.Keras(大公司一般都用这个).pytorch(本次学习)------------------主要框架 程序设计模块规 ...
- Git命令太多记不住?有了这个神器,从此告别输入命令行
一 .SourceTree简介 SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,拥有可视化界面,容易上手操作.同时它也是Mercurial和Subve ...
- 【Django笔记2】-创建应用(app)与模型(models)
1,创建应用(app) 一个完善的网站需要许多功能提供不同的服务.如果所有的功能都在一个文件中,不利于项目多人共同开发,以及后续的维护.此时可以针对一个要实现的功能,创建一个app,将多个app结 ...
- java例题_29 二维数组问题,并输出对角线之和
1 /*29 [程序 29 求矩阵对角线之和] 2 题目:求一个 3*3 矩阵对角线元素之和 3 程序分析:利用双重 for 循环控制输入二维数组,再将 a[i][i]累加后输出. 4 */ 5 6 ...
- PAT (Advanced Level) Practice 1001 A+B Format (20 分) 凌宸1642
PAT (Advanced Level) Practice 1001 A+B Format (20 分) 凌宸1642 题目描述: Calculate a+b and output the sum i ...
- 「HTML+CSS」--自定义加载动画【010】
前言 Hello!小伙伴! 首先非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 哈哈 自我介绍一下 昵称:海轰 标签:程序猿一只|C++选手|学生 简介:因C语言结识编程,随后转入计算机 ...
- 使用 EPPlus 封装的 excel 表格导入功能 (二) delegate 委托 --永远滴神
使用 EPPlus 封装的 excel 表格导入功能 (二) delegate 委托 --永远滴神 前言 接上一篇 使用 EPPlus 封装的 excel 表格导入功能 (一) 前一篇的是大概能用但是 ...
- java7与java9中的try-finally关闭资源
1.java7中的try 在java7之前,对于一些需要使用finally关闭资源的操作,会显得很臃肿. try { // } catch(Exception e) { // } finally { ...
- java POI(二)
name.xslx 1 public class Demo6 { 2 3 public static void main(String[] args) throws IOException { 4 I ...