소개
불균형 데이터 세트로 작업하는 것은 일부 고전적인 머신 러닝 접근 방식에서 문제가 될 수 있지만 클래스 간에 데이터의 자연스러운 분포가 동일하지 않은 일부 상황이 있습니다. 이것은 Fraud Detection 문제의 전형입니다.
Kaggle 의 다음 데이터 세트를 사용 하여 합법적인 거래가 많이 있고 전체 데이터의 0.17% 만이 사기 임을 알 수 있습니다.. 데이터 분포의 불균형이 있는 분류 문제에서 연구는 일반적으로 희귀 데이터 식별에 중점을 둡니다. 머신 러닝 모델의 성능은 주로 소수 계층의 예측에서 얻은 결과를 기반으로 측정되어야 합니다.
모델을 검증하기 위한 올바른 메트릭을 선택하는 방법과 우리 상황에서 Precision-Recall 트레이드오프의 실질적인 의미를 보여줍니다. 마지막으로 편향된 클래스 분포를 처리하는 방법과 다양한 기계 학습 알고리즘으로 얻은 결과를 확인하는 방법을 강조합니다.
이번 포스팅은 라벨 불균형 사기 탐지(Fraud Detection)의 분류 모델링 - 1 에 이어서 진행합니다.
평가 지표
기계 학습에는 분류 모델을 평가하는 다양한 방법이 있습니다. 가장 많이 사용되는 지표는 정확도 입니다. 전체 레코드 중에서 얼마나 많은 인스턴스가 올바르게 분류되었는지 알려줍니다. 클래스 간 데이터 불균형이 높은 편향된 데이터 분포의 시나리오에서는 일반적으로 Precision , Recall , F-score 및 AUC 와 같은 메트릭 이 사용됩니다.
정확도가 올바른 측정 기준이 아닌 이유는 무엇 입니까? 불균형 데이터 세트에 95 개의 정상적인 트랜잭션 인스턴스가 있고 5개의 사기만 있다고 가정하면 항상 Non-Fraud 를 예측 하는 더미 예측 모델은 단 하나의 사기도 발견하지 않고 95% 의 정확도를 얻을 것 입니다. 이것이 불균형 데이터 세트로 작업할 때 모델 평가에 정확도 를 사용하지 않는 이유입니다 .
Precision과 Recall 은 모두 중요하며 예측 시스템의 달성된 결과에 대해 다른 점을 알려줍니다. 이러한 측정항목은 Fraud 클래스와 관련이 있습니다. 왜냐하면 이것이 우리가 더 관심을 갖고 있기 때문입니다.
Precision. 한 트랜잭션이 사기 로 분류될 때 정밀도 값은 시스템이 사기 를 예측하는 경우 해당 트랜잭션이 실제 사기 임을 확신하는 방법 에 대한 아이디어를 제공할 수 있습니다 . 정밀도 공식은 다음과 같습니다.
Recall. 리콜의 가치는 시스템이 모든 사기 를 적발 하는 데 얼마나 자신감이 있는지에 대한 아이디어를 제공할 수 있습니다. 다음은 회수 공식입니다.
사기 탐지에서 Precision-Recall 트레이드오프의 의미
완벽한 예측 모델 은 데이터 세트의 모든 사기를 감지하고 예측된 각 사기가 실제 사기인지 확인해야 합니다. 이를 우리의 지표로 번역한다는 것은 높은 재현율(모든 사기 탐지)과 높은 정밀도(사기로 예측된 거래에서 가능한 한 적은 오류)를 의미합니다. 정밀도-리콜은 절충점이며 정밀도를 최적화하려고 하는 동안 리콜 값이 감소하고 그 반대의 경우도 마찬가지입니다.
정밀도 를 최적화한다는 것은 무엇을 의미 합니까? 우리는 사기로 예측된 트랜잭션이 실제 사기임을 매우 확신할 것이며 실제 사기일 가능성이 높은 트랜잭션만 사기로 예측하는 방식으로 분류기의 매개변수를 조정할 것입니다. 단점 은 일부 사기 거래, 아마도 non-Fraud 와 가장 유사한 거래가 감지되지 않는다는 것입니다. 시스템은 정상으로 분류하는 일부 사기 거래를 잃게 되며 이것이 문제가 될 수 있습니다.
리콜 을 최적화한다는 것은 무엇을 의미 합니까? 우리는 우리가 모든 사기를 탐지한다고 확신할 것이며 가능한 한 많은 사기를 탐지하는 방식으로 분류기의 매개변수를 조정할 것입니다. 단점 은 모든 사기를 탐지하려고 할 때 사기 와 유사한 정상적인 거래 도 사기 로 분류된다는 것입니다.
트레이드 오프에 대한 결론
Precision-recall 은 트레이드오프 이며, P 최적화를 선호 하여 사기를 덜 감지하고 회수를 줄입니다. R 최적화 를 선호하면 더 많은 사기를 감지하지만 일부가 잘못 분류되어 정밀도 값이 감소하는 일이 발생할 수 있습니다. 다른 측정항목 대신 하나의 측정항목을 선호할 수 있지만 항상 두 측정항목을 모두 염두에 두는 것이 중요합니다 . 예를 들어 정확도가 99%, 재현율이 15%에 달하는 모델은 정확도가 매우 높아도 사기의 85%를 감지하지 못하기 때문에 좋은 예측 변수가 아닙니다!!
어떤 메트릭이 다른 메트릭보다 더 중요한지 알지 못하며 모델이 사용되는 특정 사용 사례에 따라 다릅니다. 어떤 경우에는 모든 사기를 감지하는 것이 더 중요할 수 있으며 잘못된 경보(리콜 최적화)가 있는지 여부는 중요하지 않을 수 있습니다.
불균형 데이터 세트로 학습 및 테스트 분할
균형 알고리즘(예: SMOTE )을 사용하여 원본 데이터 세트를 수정하고 새 예제를 만들고 나머지는 제거합니다. 이 조작이 제대로 수행되지 않으면 데이터 누출이 발생할 수 있으므로 이 시나리오를 피하고 싶습니다.
학습-테스트 분할 프로세스는 데이터 조작(예: 밸런싱) 전에 수행되어야 합니다. 이런 식으로 테스트 세트는 불균형이 심할 것이고 실제 시나리오에 있는 것처럼 모델을 테스트하기를 원하기 때문에 괜찮습니다. 우리는 훈련 과정에 대해서만 데이터의 균형을 유지하려고 합니다.
결과
결과를 보여주기 전에 우리가 찾고 있는 정보의 유형을 이해해야 합니다. 몇 가지 쉬운 질문에 답하면 연구를 계속할 수 있는 방향을 이해하는 데 도움이 됩니다.
- 밸런싱 방법이 효과적인가? 항상 또는 일부 상황에서만?
- 가장 좋은 분류 방법은 무엇이며 성능은 어떻습니까?
밸런싱 효과
모델은 DECISION TREE, RANDOM FOREST, XGBOOST, SVM, LOGISTIC REGRESSION, K-NN과 같은 다양한 기계 학습 알고리즘으로 훈련되었습니다.
밸런싱 프로세스는 RANDOM, SMOTE, ADASYN, SMOTE ENN, SMOTE TOMEK, IMBALANCED와 같은 이전에 표시된 모든 방법론으로 수행되었습니다.
우리는 가능한 모든 조합을 보여줄 것입니다. 각 시도에 대한 심층 분석에 관심이 없다면 가장 흥미로운 결과와 결론을 보여주는 결과 토론으로 건너뛸 수 있습니다.
랜덤 포레스트
의사 결정 트리(Decision Tree)
XGBOOST
SVM
로지스틱 회귀
K-NN
밸런싱 효과
표시된 접근 방식 중 일부는 불균형 및 균형 데이터 모두에서 좋은 결과에 도달합니다. 의사 결정 트리 및 로지스틱 회귀 는 데이터가 불균형할 때 좋은 결과를 얻습니다. SVM 은 밸런싱 프로세스 가 정밀도 에서 +54% 까지 얻는 이점을 얻습니다 .
흥미로운 결과는 Random Forest , XGBoost 및 K-nn 으로 얻은 결과입니다 . 밸런싱 프로세스는 리콜 증가로 이어지며 합리적으로 보입니다. 밸런싱 프로세스 동안 우리는 모델이 훈련을 위해 보게 될 사기 수를 늘릴 것입니다. 이러한 방식으로 사기 가 어떻게 생겼는지에 대한 더 많은 정보를 갖게 되며 더 많은 정보를 인식하게 됩니다.
최상의 결과
우리는 다양한 접근 방식으로 도달한 가장 흥미로운 결과를 보여줄 것입니다.
Random Forest 와 XGBoost 를 사용하면 최상의 결과를 얻을 수 있습니다 . 또한 K-NN 은 흥미로운 결과를 가지고 있지만 실시간 시스템에서 예측 모델을 사용할 수 있고 각 분류에 대한 계산 복잡성으로 인해 k-nn이 최상의 솔루션이 아니기 때문에 다른 모델을 선호합니다. 로지스틱 회귀 와 SVM 에는 두 가지 다른 동작이 있습니다. 첫 번째는 정밀도에서 좋은 성능을, 두 번째는 리콜에서 좋은 성능을 보입니다. 의사 결정 트리는 불균형 데이터에 매우 적합하며 결과가 최고의 분류자 중 하나에 가까워지고 있습니다.
최고의 분류기는 Random Forest 와 XGBoost입니다. 이전에 논의한 바와 같이, 한 메트릭의 최적화를 다른 메트릭 대신 선호한다면 밸런싱 프로세스가 중요한 도구가 될 수 있습니다. 밸런싱 프로세스는 리콜 증가로 이어지며, 이는 더 많은 사기를 감지하려는 경우 중요한 결과입니다.
'Daily Review' 카테고리의 다른 글
고객 분석 및 코호트 분석 - Retail 대시보드 (0) | 2022.09.07 |
---|---|
60일 내의 데이터 분석이란. (0) | 2022.09.07 |
라벨 불균형 사기 탐지(Fraud Detection)의 분류 모델링 - 1 (0) | 2022.09.06 |
나를 Kaggle 마스터로 만든 10가지 노트북 (0) | 2022.09.06 |
비지도 학습 기법을 적용한 사기 탐지 (Fraud Detection) (0) | 2022.09.05 |
댓글