728x90
Isolation Forest (고립 숲) 가 먼가?
Isolation Forest는 비지도 학습 기반의 이상 탐지(Anomaly Detection) 알고리즘
비지도 학습니다.
빨간펜 선생님이 없이 학습하는것이다.
즉 data 를 쭈~욱 주고 이건 참, 저건 거짓 이렇게 가르치는게 아닌
data 를 주고 내가 준 data 의 몇%는 비정상 data 이니 이걸 가지고 학습하라는 거다.
그럼 어떤 원리로 학습하지?
의사결정 tree 를 몇개 할지, 샘플링을 몇개할지 코딩으로 정해 주면
1. 전체 data 에서 무작위로 데이타를 선택해서 data 덩어리를 만든다.
2. 선택한 덩어리에서 랜덤특징과 랜덤 값을 빼와 data를 나누면서 분할 tree (의사결정 tree) 를 만든다.
3. 비정상값( outlier) 는 정상 값 보다 tree 의 깊이가 얕으므로 분리될 가능성이 높다.
4. 여러 tree 를 만든 후 평균 깊이를 계산하여 평균적 깊이가 낮으면 이상 data 로 본다.
이게 무슨 개똥 같은 소리인가?
"의사 결정 트리를 만든다" 부터 이해가 안된다.
쉽게 이해 할수 있는 예제를 한번 들어보자.
내가 쓰는 카드 이력이다.
| 거래 id | 사용금액 | 사용처 | 사용 시간 |
| 001 | 12,000 | 양재동 | 12시 |
| 002 | 10,000 | 서초동 | 12시40분 |
| 003 | 17,000 | 광교 | 12시 30분 |
| 004 | 16,000 | 양재동 | 12시 20분 |
| 005 | 10,000 | 양재동 | 12시 |
| 006 | 10,000,000 | 뉴욕 | 새벽3시 |
| 007 | 6,000 | 한남동 | 13시 |
| 009 | 90,000,000 | 두바이 | 새벽 5시 |
위 카드 내역중 머가 사기 거래 일 까 판단 할때
Step 1: 첫 번째 분할 (거래 금액 기준)
- 무작위로 거래 금액(Feature)을 선택하여 데이터를 분할
- 대부분의 정상 거래는 10,000~17,000 사이에 모여 있음
- 하지만 10,000,000 , 90,000,000 같은 이상값은 정상값과 거리가 멀어 바로 별도 그룹으로 분리됨
2만원 이하는 좌측 tree,
2만원 초과는 우측 tree
2만원 초과는 우측 tree
✅ Step 2: 두 번째 분할
- 정상 거래 그룹은 10,000~ 20,000 사이에서 여러 번 분할이 필요함 → 트리 깊이가 깊어짐
15,000 이하는 우측 tree
15,000 촤과는 좌측 tree
이런식으로 계속 나가는듯.. - 하지만 1 0,000,000 , 90,000,000 거래는 한 번의 분할만으로 쉽게 고립됨 → 트리 깊이가 얕음
728x90
'SI 업무 > AI' 카테고리의 다른 글
| 1. ai 언어들의 의미 (0) | 2025.09.16 |
|---|---|
| 물류 이동 시 Loss 발생을 AI 예측 하는 자료 정리 (0) | 2025.02.14 |