DACON 신용카드 사기 거래 탐지(Fraud Detection System, FDS)를 참여하기로 하였다!
실시간으로 거래되어 쌓이는 비식별화된 스트리밍 데이터는 라벨이 되지 않기때문에
비지도학습을 이용한 실시간 이상탐지기법(Unsupervised Anomaly Detection) 솔루션에 대해 스터디하기 위한 좋은 경험이라 생각한다
0) 문제정의
- 솔루션 개발 필요성
- 사기성 신용카드 거래를 탐지하여 고객이 구매하지 않은 항목에 대해 요금을 청구하지 않는 것이 중요
- 데이터 구축에 필요한 시간, 비용의 문제 해결
- 방대한 정상 거래 데이터에서 극소수의 비정상데이터를 탐지를 진행하는 것은 어려움
- 비지도학습 관련 검색 키워드 용어
검색키워드 : anomaly detection , unsupervised learning, bottleneck, hyper-parameter tunning
Variational Auto Encoder, Fraud Detection
- 오토인코더 : https://kh-kim.github.io/blog/2019/12/15/Autoencoder-based-anomaly-detection.html
- VAE : https://huidea.tistory.com/296
1) 참고자료
이번 데이콘 공모전과 유사한 신용거래 이상탐지 공모전 우승자 솔루션을 참고해서보고자 했다
- 활용데이터
캐글 신용카드 고객 거래 이상탐지 공모전 솔루션 논의 자료(2019)
사이트 : https://www.kaggle.com/c/ieee-fraud-detection/discussion/111252
- 1위 솔루션 핵심 정리
- (타겟팅) 분석 타겟팅을 거래가 아닌 고객으로 논리적인 정의로 재정함(ex) 지불거절 > 사기거래
- (사전처리) 발생하지 않은 거래에 대한 예측임으로 시계열이 아님
- (모델링) 모델 기능을 독립적으로 엔지니어링함(CAT 및 XGB의 예측 위에 LGBM이 훈련된 스택)
- (사후 처리) 두 제출 모두 단일 클라이언트(신용 카드)의 모든 예측을 가져와 해당 클라이언트의 평균 예측으로 대체
- (검증) 월을 그룹으로 사용하여 CV GroupKFold를 수행
* anomaly detection 는 비정상, 이상치, 특이치 에대해 분류하는 성능으로 세부타겟팅이 나눠짐
target | 세부타겟팅 | model | 정확도 |
사기 거래 예측이 아닌 사기 고객 (신용카드) 예측 |
의심스러운 UID | CatBoost | 0.98834 |
알 수 없는 UID | LGBM | 0.92117 | |
알려진 UID | XGB | 0.99723 |
2) 정리
- 학습 데이터 군집을 위한 오토인코더 적용
가정 : 대부분의 데이터가 정상 sample이라는 가정을 하여 Label 취득 없이 학습을 시키는 Unsupervised Anomaly Detection 방법론을 적용해야함
방법론 : VAE(Variational Auto Encoder)
이유 : 오토인코더의 하이퍼파라미터 튜닝이 적절하게 이뤄지지 않으면 잘못분류하는 확률줄임
라벨이 없는 데이터에서 확률 분포를 이용해 라벨로 분류할 수 있는 새로운 데이터를
생성하는 것을 목적으로 개발해야 함으로 적합하다 생각함
관련 구현코드 :
https://www.kaggle.com/code/hone5com/fraud-detection-with-variational-autoencoder/notebook
'데이터분석' 카테고리의 다른 글
nltk 관련 오류 잡기 (2) | 2021.03.09 |
---|