Synthetic Over-sampling

การตรวจจับการฉ้อโกงใน R

Sebastiaan Höppner

PhD researcher in Data Science at KU Leuven

Over-sampling ด้วย 'SMOTE'

  • SMOTE : Synthetic Minority Oversampling TEchnique (Chawla et al., 2002)
  • Over-sample คลาสส่วนน้อย (= ธุรกรรมฉ้อโกง) ด้วยการสร้างตัวอย่างสังเคราะห์
การตรวจจับการฉ้อโกงใน R
dim(transfer_data)
1000    4
head(transfer_data)
  isFraud    amount   balance     ratio
1   false  528.6840 1529.4732 0.3456641
2   false  184.0193  836.3509 0.2200265
3   false 1885.8024 2984.0684 0.6319568
4   false  732.0286 1248.7217 0.5862224
prop.table(table(transfer_data$isFraud))
 false  true
  0.99  0.01
การตรวจจับการฉ้อโกงใน R

smote_scatterplot_1

การตรวจจับการฉ้อโกงใน R

smote_scatterplot_2

การตรวจจับการฉ้อโกงใน R

SMOTE

เลือกกรณีฉ้อโกง X (Tim)

smote_zoomin

การตรวจจับการฉ้อโกงใน R

SMOTE - ขั้นตอนที่ 1

ขั้นตอนที่ 1

หา K เพื่อนบ้านที่ใกล้ที่สุด ของ X (Tim) ในกลุ่มฉ้อโกง

เช่น K = 4

smote_step1

การตรวจจับการฉ้อโกงใน R

SMOTE - ขั้นตอนที่ 2

ขั้นตอนที่ 2

สุ่มเลือกเพื่อนบ้านที่ใกล้ที่สุด ของ Tim หนึ่งราย เช่น X4 (Bart)

smote_step2

การตรวจจับการฉ้อโกงใน R

SMOTE - ขั้นตอนที่ 3

ขั้นตอนที่ 3 : สร้างตัวอย่างสังเคราะห์

synthetic_case_1

การตรวจจับการฉ้อโกงใน R

SMOTE - ขั้นตอนที่ 3

ขั้นตอนที่ 3 : สร้างตัวอย่างสังเคราะห์

synthetic_case_2

การตรวจจับการฉ้อโกงใน R

SMOTE - ขั้นตอนที่ 3

ขั้นตอนที่ 3 : สร้างตัวอย่างสังเคราะห์

synthetic_case_3

การตรวจจับการฉ้อโกงใน R

SMOTE - ขั้นตอนที่ 3

smote_step3

การตรวจจับการฉ้อโกงใน R

SMOTE - ขั้นตอนที่ 4

ขั้นตอนที่ 4

ทำซ้ำขั้นตอนที่ 1-3 สำหรับทุกกรณีฉ้อโกง dup_size ครั้ง

เช่น dup_size = 10

smote_step3

การตรวจจับการฉ้อโกงใน R
library(smotefamily)
smote_output = SMOTE(X = transfer_data[, -1],
                       target = transfer_data$isFraud,
                       K = 4,
                       dup_size = 10)

oversampled_data = smote_output$data
table(oversampled_data$isFraud)
false  true
  990   110
prop.table(table(oversampled_data$isFraud))
false  true
  0.9   0.1
การตรวจจับการฉ้อโกงใน R

smote_result

การตรวจจับการฉ้อโกงใน R

มาฝึกกันเถอะ!

การตรวจจับการฉ้อโกงใน R

Preparing Video For Download...