모델링의 목적은 모집단 전체를 두루 적절히 예측하는 것이다.
모델이 복잡하다 = train 데이터의 상세한 패턴까지 반영한다
-> overfitting 발생
이상탐지는 일반적인 값과 다른 특이한 값이나 드문 사건을 탐지하는 기법
얼마나 특이하고 얼마나 드물어야 이상치로 판단할 수 있을까 어느 정도 클래스가 imbalance 해야 이상치일까 딱히 기준은 없으나 경험적으로는 5%보다 적다면 심각한 불균형이라고 판단한다.
유형은 classification, 해결은 비지도 방식으로 진행한다.
Anormaly Detection의 문제 유형은 정상과 비정상을 판단해야 하는 Classification 문제로 Supervised Learning 방식으로 해결한다. 하지만 학습 방법은 Unsupervised Learning에 가까운데 이유는 보통 비정상쪽 데이터는 너무나 부족하고 그나마 있는 데이터들도 Anormaly class 전체를 대표하기는 어렵다.그러므로, 정상(Normal)데이터를 가지고 어디 까지가 정상인지 추정하는 방식을 써야 한다.
어디까지가 정상인지 그 범주를 찾고 그 범주를 벗어나는 데이터는 비정상으로 판단
실제 현장에서 대부분의 데이터는 class imbalance한 상태이며 정도의 차이만 있을 뿐이다.
이상(abnormal) 데이터는 '정상(normal)이 아닌 데이터'
이상 탐지는 classification 유형으로 비지도학습 방식을 사용한다
label 확보, 낮은 성능, 올바른 평가를 위한 지표 선정에 대한 문제해결이 필요하다.
이상탐지 문제 해결 프로세스는 CRISP-DM
분류 모델의 결과는 확률값으로 나오는 예측된 값을 가지고 만들어 낸 값이다. 예측된 확률 값을 어떤 기준으로 잘라서 0, 1로 분류한다. 이때 cut-off를 조정하면 결과가 달라진다
cut-off에 따른 모델의 성능 변화를 나타내는 그래프로는 ROC, Precision-Recall Curve가 있으며 curve 아래 면적으로 모델의 전반적인 성능을 비교할 수 있다. curve는
분류 모델로 예측한 결과는 0과 1사이의 확률값이며 이 확률값을 잘라야만 class로 나뉘게 됨 자르는 값(cut-off)를 어떻게 지정하느냐에 따라 accuracy, recall, precision, f1-score가 달라지며 cut-off value를 threshold로 부르기도 함 그러므로 분류 모델에 대한 평가를 할 때 비즈니스 요구사항에 맞는 평가지표를 정하고 cut-off 값의 변화에 따른 그래프를 그린 후 비교하고 대표적인 그래츠는 precision-recall curve와 AUROC임다 이상탐지 모델을 만들어 예측하고, 결과에 대해 평가할 때 score를 계산함
ML 알고리즘들은 데이터가 클래스 간에 고르게 분포되어 있다고 가정
해결방법
모델링 절차(.fit)
분류 문제의 데이터는 대부분 imbalance한 상태이다 이 데이터를 그대로 모델링에 사용하면 다수 class를 더 잘 예측하고 소수 class를 잘 못 맞추는 모델이 생성되는데 이유는 모델링을 수행하는 동안 내부에서는 전체 오차를 줄이는 방향으로 최적화 작업이 수행된다 따라서 소수 class는 잘 예측하지 못하게 된다. 이를 보정하기 위해서 Resampling, Class weight를 조정하는 방법을 쓸 수 있고 두 가지 방법은 지도학습 방식에서 사용하며 둘 다 동일한 효과를 볼 수 있다. 해당 방법을 사용하여 문제를 해결할 수 있는 상황은 매우 행복한 상황이다. 보통 class_weight 옵션이 있다면 사용하는 것이 속편하지만 옵션이 없다면 resampling을 사용해야 한다.
Supervised Learning : Target이 있는 데이터로 학습
Semi-supervised Learning : Target이 있는 데이터와 없는 데이터로 학습
Unsupervised Learning : Target 없이 학습
고립시킨다 = leaf node에 데이터가 한개인 상태
각각의 leaf node에 데이터가 한개인 상태 -> Isolation Tree
1. 주어진 Train set으로부터 일부 데이터를 샘플링
2. Isolation Tree를 여러개 구성해 Isolation Forest 만들기
- 랜덤하게 feature를 선정하고 랜덤하게 split 기준을 삼아 Tree 생성
- 정상 데이터일수록 Isolation 시키려면 많은 split이 필요하므로 depth가 깊어짐
- 비정상 데이터일수록 정상에서 떨어져 있으므로 depth가 얕아짐
- 이런 식으로 여러 개의 Tree를 구성해 평균 depth를 구해 Isolation Score를 구한다
3. Scoring으로 정상(normal)과 비정상(abnormal)을 구분
- Scoring 함수
semi-supervised learning
nomal 데이터의 경계에만 초점을 맞추고 학습하여 normal 데이터만 사용하며 score 산출이 아닌 함수를 찾음
학습 시에 학습용 데이터를 커널 변환하여 새로운 Feature Space를 만들고 데이터를 원점으로부터 최대한 멀리 떨어뜨리는 초평면(Hyperplane, 결정경계)을 찾음
경계 바깥의 값에 대한 패널티 계산에 영향을 주는 Hyper parameter
경계면 위와 바깥에 있는 데이터가 서포트 벡터
진짜만을 가지고 학습, 진짜의 중요한 특징을 추출해서 기억함
auto encoder는 encoder, decoder 두 개의 부분으로 구성
x_train에서 뽑아낸 새로운 output과 input의 차이를 오차라고 함
input를 통해 뽑아낸 output를 재구성(Reconstruction)된 input이라고 함
AutoEncoder를 이상탐지에 활용
1. 학습시에는
재구성 오차 계산
실제 data point와 예측 값에 대한 MSE 계산
분석 단위 별로 MSE 계산
재구성 오차가 얼마나 크면 abnormal일까 f1이 최대가 되는 Threshold를 찾아야 함
AutoEncoder는 딥러닝을 이용한 비지도 학습 방식 알고리즘으로 Encoder와 Decoder로 구성되어 있음 중요한 정보는 보존되고, 불필요한 정보는 제거될 것이라는 기대가 있음
이 모델에서 중요한 것은 무엇인가
무엇을 하려고 했는가
실제 목적에 맞게 모델의 결과를 평가하고 있는가
모델의 confusion matrix
비즈니스의 가치 매트릭스
모델의 기대가치 계산
348이 고객 1명 당의 기대가치 수익이고 이 가치가 높을수록 좋은 모델이다