Losowe próbkowanie w dół

Wykrywanie oszustw w R

Bart Baesens

Professor Data Science at KU Leuven

Losowe próbkowanie w dół (RUS)

Wykres słupkowy klas po próbkowaniu w dół

Wykrywanie oszustw w R

Oryginalne dane: zbiór treningowy i testowy

Wykrywanie oszustw w R

Losowe próbkowanie w dół – wersja 0

Wykrywanie oszustw w R

Losowe próbkowanie w dół – wersja 1

Wykrywanie oszustw w R

Niezrównoważony zbiór danych: V2 vs V1

Wykrywanie oszustw w R
table(creditcard$Class)
    0     1 
24108   492
n_fraud <- 492
new_frac_fraud <- 0.50
new_n_total <- n_fraud / new_frac_fraud ## = 492 / 0.50 = 984

library(ROSE) undersampling_result <- ovun.sample(formula = Class ~ ., data = creditcard, method = "under", N = new_n_total, seed = 2018)
undersampled_credit <- undersampling_result$data
prop.table(table(undersampled_credit$Class))
  0   1 
0.5 0.5
Wykrywanie oszustw w R

Zbiór danych po próbkowaniu w dół: V2 vs V1

Wykrywanie oszustw w R

Zastosujmy obie metody!

Wykres słupkowy klas – obie metody

Wykrywanie oszustw w R
n_new <- nrow(creditcard) ## = 24600
fraction_fraud_new <- 0.50

sampling_result <- ovun.sample(formula = Class ~ ., data = creditcard, method = "both", N = n_new, p = fraction_fraud_new, seed = 2018) sampled_credit <- sampling_result$data
prop.table(table(sampled_credit$Class))
        0         1 
0.5039837 0.4960163
Wykrywanie oszustw w R

Zbiór danych po obu metodach próbkowania: V2 vs V1

Wykrywanie oszustw w R

Czas na ćwiczenia!

Wykrywanie oszustw w R

Preparing Video For Download...