시작하기무료로 시작하기

무작위 과샘플링(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(___(___))
코드 편집 및 실행