장점
단점
이상치는 정상값에 비해 동떨어져 있으므로 이상치는 쉽게 고립시킬 수 있을 것이다
→ isolation 을 통해 이상치를 정상값에서 분리시킨다는 개념!
특정한 기준이 없이 임의 변수와 임의의 값으로 이상치를 splite 시킨다
아무의미없이 트리를 만드는데 분류트리와는 반대로 엔트로피가 낮은쪽으로 선택한다
하나의 값을 고립(isolation)시키는데 있어서 얼마나 많은 split 가 필요한지를 계산한다.
이상치가 평균적으로 몇번의 split이 필요한지를 계산 (정상값에 비해 매우 적은 횟수로 분류될 것이다)
평균을 취하기 위해 100개 이상의 forest를 구성해서 이상치인 x0를 구별할 수 있었다.
하나의 트리에서 어떤 값을 고립시키는 path length의 기대값 E(h(x))과 평균 path length를 이용해 이상치를 계산하는 스코어를 계산한다.
기댓값이 클 수록 (정상값이어서 분류하는데 많은 split 이 필요한 경우) score는 0에 가까워지고 기대값이 작을 수록 (이상치여서 쉽게 Isolation 될 수록) score는 1에 가까워진다.
데이터 셋과는 상관없이 항상 0 ~ 1 사이의 이상치 score 가 계산된다 → 비지도 학습으로 데이터에 대한 이해가 적어도 바로 사용할 수 있다.
트리를 만들 때 수직 수평으로만 분류를 하므로 2번 3번의 경우 노란영역이 정상영역으로 분류되지만 실제로는 데이터가 있으면 안되는 이상치의 영역을 포함하고 있다. 축이라는 건 feature를 의미하는데 알고리즘은 feature가 어떤 중요도나 의미를 가지는지는 상관하지 않고 그냥 수직한 선을 그어서 isolation을 진행하는 것이 이런 문제를 야기함.
선이 많이 겹쳐질 수록 정상치로 분류하는데 2번 3번의 경우 이상치 데이터에도 선이 꽤 그어져있으므로 이상치인데 정상값에 가깝게 분류됨
Feature의 특성을 고려하지 않는 알고리즘 (랜덤하게 선을 그을 뿐임) 이므로 Isolation forests를 개선한Extended Isolation Forests는 선을 직선이 아닌 사선으로 그어서 이상치를 isolation 시킨다.
[M2 pro MacOS 13] Tensorflow와 Pytorch 설치 및 사용코드정리 (1) | 2023.03.28 |
---|---|
[GPT] 나만의 작은 Chat-GPT! "알파카" 코드 두줄로 설치하는 법 (LLaMA, Dalai, Alpaca 설치법) (3) | 2023.03.26 |
캐글/데이콘을 위한 실용가이드 : CRISP-DM for python (0) | 2023.03.07 |
빅데이터 기반의 플라즈마 진단에 관한 생각 (2) | 2023.03.04 |
[머신러닝 커닝 페이퍼] 분류를 위한 결정트리의 모든 것 2편 (0) | 2022.12.15 |