무작위 과샘플링(Random over-sampling)
신용 이체 중 사기 거래는 극히 일부에 불과합니다. 이제 사기 사례를 과샘플링(over-sampling) 해서 클래스 분포를 균형 있게 만들려고 합니다. creditcard 데이터셋의 특성 Class는 사기면 1, 아니면 0의 값을 가집니다.
콘솔에서 str()로 'creditcard'의 컬럼을 확인하고, head()로 앞 6행을 출력하며, table(creditcard$Class)로 클래스 분포를 확인해 보세요.
이 연습은 강의의 일부입니다
R로 배우는 사기 탐지
연습 안내
ROSE패키지를 불러오세요.- 과샘플링된 데이터셋에서 사기 비율이 30%, 합법 거래가 70%가 되도록 필요한 사례 수를
n_new로 지정하세요. 이를 위해 기존 합법 거래 건수를 과샘플링 후 목표 합법 비율로 나누면 됩니다. ovun.sample()함수를 사용해Class ~ .공식을 지정하여 과샘플링을 수행하세요.- 과샘플링된 데이터셋의 클래스 분포를 확인하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Load ROSE
___
# Calculate the total number of required cases in the over-sampled dataset
print(table(creditcard$Class))
n_new <- ___
# Over-sample
oversampling_result <- ___(formula = ___, data = ___,
method = ___, N = ___, seed = 2018)
# Verify the Class-balance of the over-sampled dataset
oversampled_credit <- oversampling_result$data
prop.table(___(___))