시작하기무료로 시작하기

하나의 계좌에 대한 빈도 특성 만들기

빈도(feature)란 과거에 특정 사건이 얼마나 자주 발생했는지를 세는 특성입니다. 이런 특성을 만들면 비정상적인 행동을 더 잘 탐지할 수 있어요. 영상에서는 범주형 특성을 바탕으로 빈도 특성을 만드는 방법을 배웠습니다.

지금은 Bob의 거래 데이터가 제공됩니다. 그중 channel_cd라는 열은 각 거래를 할 때 Bob이 사용한 결제 채널을 나타냅니다. 여기서는 rollapply() 함수를 사용해 channel_cd 열을 바탕으로 freq_channel이라는 빈도 특성을 만들어 볼 거예요. 함수 문서는 콘솔에서 ?rollaply로 확인할 수 있습니다.

데이터셋 trans_Bobzoo, dplyr 패키지는 작업 공간에 이미 로드되어 있습니다.

이 연습은 강의의 일부입니다

R로 배우는 사기 탐지

강의 보기

연습 안내

  • frequency_fun() 함수를 작성하세요. 이 함수는 stepschannel을 입력으로 받아, 단계 수를 세고 가장 최근 channel이 과거에 몇 번 사용되었는지 합산합니다.
  • transfer_id 열에 rollapply 함수를 사용해 freq_channel 특성을 생성하세요. 이 특성은 특정 channel_cd가 이전에 몇 번 사용되었는지를 세어야 합니다.
  • channel_cd, freq_channel, fraud_flag 특성을 출력하고, 새로 만든 특성을 확인하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Frequency feature based on channel_cd
frequency_fun <- function(steps, channel) {
  n <- ___(___)
  frequency <- ___(___[1:n] == ___[___])
  return(frequency)
}

# Create freq_channel feature
freq_channel <- ___(trans_Bob$___, width = list(-1:-length(trans_Bob$___)), partial = ___, FUN = ___, trans_Bob$___)

# Print the features channel_cd, freq_channel and fraud_flag next to each other
freq_channel <- c(0, freq_channel)
cbind.data.frame(trans_Bob$___, ___, trans_Bob$fraud_flag)
코드 편집 및 실행