불균형 데이터셋 다루기

R로 배우는 사기 탐지

Bart Baesens

Professor Data Science at KU Leuven

불균형 데이터셋

  • 핵심 과제: 이벤트를 사기 여부로 라벨링
    • 분류 및 이상치 탐지 기법의 주요 난제
  • 분류기는 다수 클래스(= 비사기) 편향 경향
    • 사기 사례에서 큰 분류 오류 발생
  • 분류기는 균형 잡힌 분포에서 더 잘 학습

건초 더미와 바늘 v2

R로 배우는 사기 탐지

불균형 데이터셋

  • 핵심 과제: 이벤트를 사기 여부로 라벨링
    • 분류 및 이상치 탐지 기법의 주요 난제
  • 분류기는 다수 클래스(= 비사기) 편향 경향
    • 사기 사례에서 큰 분류 오류 발생
  • 분류기는 균형 잡힌 분포에서 더 잘 학습
  • 가능한 해결책: 샘플링으로 클래스 분포 조정

건초 더미와 바늘 v1

R로 배우는 사기 탐지

원본 불균형

원본 불균형 막대그래프

R로 배우는 사기 탐지

소수 클래스를 오버샘플링...

소수 클래스 오버샘플링 막대그래프

R로 배우는 사기 탐지

... 또는 다수 클래스를 언더샘플링 ...

다수 클래스 언더샘플링 막대그래프

R로 배우는 사기 탐지

... 또는 둘 다!

양쪽 샘플링 막대그래프

R로 배우는 사기 탐지

샘플링 후 결과...

샘플링 후 결과 막대그래프2

R로 배우는 사기 탐지

... 또는 이렇게

샘플링 후 결과 막대그래프1

R로 배우는 사기 탐지

무작위 오버샘플링(ROS)

원본 데이터 v0

R로 배우는 사기 탐지

원본 데이터 학습/테스트

R로 배우는 사기 탐지

무작위 오버샘플링 v0

R로 배우는 사기 탐지

무작위 오버샘플링 v1

R로 배우는 사기 탐지

오버샘플링 실습

  • Kaggle 신용카드 사기 탐지 데이터셋
    • 약 30만 건의 익명 신용카드 거래, 사기/정상 라벨
  • 데이터 정보
    • 수치(익명) 변수: V1, V2, ... , V28
    • Time = 각 거래와 첫 거래 간 경과 초
    • Amount = 거래 금액
    • Class = 타깃 변수: 사기 1, 아니면 0
R로 배우는 사기 탐지

데이터셋 일부 보기

R로 배우는 사기 탐지

불균형 확인

head(creditcard)
  Time         V1         V2  ...            V27         V28 Amount Class
1    0  1.1918571  0.2661507  ...  -0.0089830991  0.01472417   2.69     0
2   10  0.3849782  0.6161095  ...   0.0424724419 -0.05433739   9.99     0
3   12 -0.7524170  0.3454854  ...  -0.1809975001  0.12939406  15.99     0
4   17  0.9624961  0.3284610  ...   0.0163706433 -0.01460533  34.09     0
5   34  0.2016859  0.4974832  ...   0.1427572469  0.21923761   9.99     0
prop.table(table(creditcard$Class))
   0    1 
0.98 0.02
R로 배우는 사기 탐지

ROSE 패키지의 ovun.sample

n_legit <- 24108
new_frac_legit <- 0.50
new_n_total <- n_legit / new_frac_legit ## = 24108 / 0.50 = 48216

library(ROSE) oversampling_result <- ovun.sample(formula = Class ~ ., data = creditcard, method = "over", N = new_n_total, seed = 2018)
oversampled_credit <- oversampling_result$data prop.table(table(oversampled_credit$Class))
  0   1 
0.5 0.5
R로 배우는 사기 탐지

오버샘플링된 데이터셋 보기

R로 배우는 사기 탐지

Ayo berlatih!

R로 배우는 사기 탐지

Preparing Video For Download...