어뷰저/노말 유저가 일부 라벨링 되어 있는 데이터셋에서 unknown 데이터를 라벨링하기 위한 실험을 진행하였었다.
전체 플젝 진행 과정은 아래와 같으며,
1. EDA 분석으로 확실한 Normal/Abuser 유저를 판별
2. Active learning으로 unknown 데이터를 라벨링
3. Validation: RandomForestClassifier를 이용하여 트리 구조 확인
EDA 분석 결과를 토대로 구축한 학습용 데이터셋을 Active Learning으로 학습한 내용을 정리하려 한다.
1. Active Learning
데이터의 분포에서 라벨의 decision boundary에 위치하여 모델이 판단하기에 어려운 데이터 위주로 학습해나가는 방식.
model.predict_prob에서 class들의 확률이 비슷한 케이스 우선!
모델 학습은 아래와 같이 진행하였다.
- 학습 데이터셋의 정보값을 편향되지 않게 학습하였는지 측정하기 위해, Stratified K-Fold 방법으로 데이터셋을 셔플해주어 진행
- Classifier와 Sampling (쿼리) 방법
- ParzenWindowClassifier: Data 자체로부터 밀도를 추정
- 각 single data에 대해 sampling 될 확률을 추정하는 것이 kernel density estimation이다.
- 밀도를 추정하는 커널밀도추정
- RandomSampling
- UncertaintySampling: 불확실성이 높은 데이터 Decision Boundary에 가까운 샘플)를 기준으로 선택하는 방법
- ProbabilisticAL: 라벨 가능성으로 확률을 계산하여 최대 확률인 기준으로 라벨링
- CostEmbeddingAL: 임베딩 (벡터 공간으로 매핑하는 것)하여 cost 값을 얻고, 그 값이 불확실성이 높은 데이터 기준으로 선택
- DiscriminativeAL: clf의 clone을 두어, labeled된 데이터와 unlabeled된 데이터를 구별할 수 없다면, Labeled set은 이미 충분하게, 분포(True Distribution)를 반영
- ParzenWindowClassifier: Data 자체로부터 밀도를 추정
UncertaintySampling 쿼리 방법이 가장 높은 accuracy이면서 가장 낮은 f1 score인 결과를 보였다.
2. 표준화
유저에게 서비스를 제공할 때 중요하게 고려할 지점이 (여기서는 어뷰저 탐지) False Positive,
Normal인 유저를 Abuser로 잘못 판단하는 일이다.
TP -> Abuser를 Abuser로 예측
TN -> Normal을 Normal로 예측
FP -> Normal을 Abuser로 예측
FN -> Abuser를 Normal로 예측
- Accuracy (정확도): 예측이 정답과 얼마나 정확한가?
- 맞춘 Abuser (TP) & Normal (TN) 수
- Recall (재현율): 찾아야 할 것중에 실제로 찾은 비율은?
- 실제로 True (Abuser)인 데이터를 모델이 True (Abuser)라고 인식한 비율 TP / (TP+FN)
- Abuser를 Abuser로, Abuser를 Normal로 예측
- FN: 보안, 의학 분야에서 중요
- Precision (정밀도): 예측한 것중에 정답의 비율은?
- 예측한 것 (abuser) 중에 정답 비율 TP / (TP+FP)
- Abuser로 예측했는데 Normal이었음
- F1 Score : 정밀도와 재현율의 조화 평균
- ROC-AUC
- TPR (Recall, 민감도) 과 FPR (1-특이도, FP / FP+TN)
- 실제 Normal을 Abuser로 잘못 예측한 비율
FP가 고려되는 ROC-AUC 성능 평가에서 너무 낮은 성능이 나와서 MaxAbsScaler 표준화를 적용해주었다.
FP를 고려하여 표준화를 하였을 때도, UncertaintySampling이 가장 좋은 성능을 보였다.
3. UncertaintySampling
Least confident 와 margin sampling 방법 비교
- Least Confidence : 최대 확률값 (probs)이 가장 낮은 데이터를 선별
- Margin Sampling : 최대 확률값과 그 다음 확률값의 차이가 작은 데이터를 선별
FP가 고려되는 평가 방법에는 Least confident 방법이 조금 더 좋은 성능을 보였다.
[ Validation ] RandomForest ML: Feature importance
라벨링 이전 데이터셋만으로는 컬럼 하나의 영향이 크지만, AL 모델로 라벨링한 후에는 다른 컬럼의 영향이 증가한 것을 확인할 수 있다.
'모델 학습' 카테고리의 다른 글
Bagging VS Boosting (1) | 2024.02.23 |
---|