摘要: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到根節點的路徑上的全部子樹,而不再是從所有可能的組合中選擇。