출처 : Anomaly detection using Extended Isolation Forest : https://dspace.cvut.cz/bitstream/handle/10467/87988/F8-DP-2020-Valenta-Adam-thesis.pdf?sequence=-1&isAllowed=yhttps://ieeexplore.ieee.org/ielaam/69/9371488/8888179-aam.pdf
출처 : Extended Isolation Forest with Randomly Oriented
Hyperplanes : https://ieeexplore.ieee.org/ielaam/69/9371488/8888179-aam.pdf
N 차원 공간을 분할할때 (Binary Serach Tree), 일차적인 가정은 "상대적으로 소수이면서 다른" 것들은 쉽게 분류 되며, "정상적인" 것들은 시작 노드로부터 스플릿 포인트가 많이 될 수 밖에 없다는 것이다.
Isolation Forest 에서는 Robust 한 성능을 위해서 Sub-Sampling을 진행한다.
Isolation Forest 내부적으로 사용하는 Anomaly Score 는 아래 식으로 계산된다.
IF 알고리즘
IF 의 장단점
장점
EIF 는 IF 의 일반화된 알고리즘이다.
좀 더 구체적으로 EIF 에서는 Rotated Trees를 사용한다.
IF 는 트리 생성 전, 미리 sub-sample 된 데이터를 생성한다.
그런데 EIF 에서 sub-sample 된 데이터에 대해서 랜덤하게 twist 했을때 약간의 성능 향상은 있었지만 다음과 같은 문제점들이 있었다.
n개의 tree가 있고, n개의 sum-sample된 데이터가 있을때 각각 unique하게 twist가 되므로 anomaly Score 를 평균 냈을때 n개의 데이터 셋에 대해서 bias가 다른 문제가 있었다.
그리고 대용량/대차원 데이터에 적용하기 어려움이 있었다. ( 고차원 벡터를 rotation 변환한다고 생각해보면 메모리 사용량이 많을 것 같기도.. )
고차원으로 갈수록 rotation 이 2차원에서의 rotation 만큼 obvious 하지 않았다.
그래서 split line 을 random slope 가 되도록 하는 안을 선택했다.
N차원 데이터에서 분할을 위한 랜덤 slope를 고르는 것은 unit N-Sphere 에서 uniform 하게 noraml vector를 고르는 것과 같다.
( * 여기서 normal vecotr 는 법선 벡터를 의미한다. )
( 왜 갑자기 normal vector 를 고른다는 이야기가 나올까? )
법선 벡터를 고르는 것은 표준 정규 분포에서 고르는 것과 같다. (?)
그리고 법선 벡터 기준으로 left child / right child 를 고르는 것은 법선 벡터의 내적이 0인 것을 이용하여, 내적 값이 0보다 작냐/크냐 기준으로 고를 수 있다.
2차원 데이터에선 직선이 split line 이었다. ( 2 - 1 ) 차원.
고차원 데이터에선 ( N - 1 ) 차원의 hyperplane 으로 분할되는데, hyperplane 이 꼭 고차원일 필요가 없듯이, 0~N-1 구간에서 랜덤하게 선택한다.