Đặc trưng tần suất cho một tài khoản
Một đặc trưng tần suất (frequency feature) đếm số lần một sự kiện nào đó đã xảy ra trong quá khứ. Tạo các đặc trưng như vậy giúp phát hiện hành vi bất thường. Trong video, bạn đã học cách tạo một đặc trưng tần suất dựa trên một đặc trưng phân loại.
Hiện bạn có dữ liệu giao dịch của Bob. Một trong các cột là channel_cd cho biết kênh thanh toán mà Bob dùng để thực hiện từng giao dịch. Bạn sẽ tạo một đặc trưng tần suất tên là freq_channel dựa trên cột channel_cd bằng hàm rollapply(). Bạn có thể dùng ?rollaply trong console để xem tài liệu của hàm.
Bộ dữ liệu trans_Bob, cùng với các gói zoo và dplyr, đã được nạp vào không gian làm việc của bạn.
Bài tập này là một phần của khóa học
Phát hiện gian lận với R
Hướng dẫn bài tập
- Viết hàm
frequency_fun()nhậnstepsvàchannellàm đầu vào, đếm số bước và cộng số lầnchannelmới nhất đã được dùng trong quá khứ. - Tạo đặc trưng
freq_channelbằng cách dùng hàmrollapplytrên cộttransfer_id. Đặc trưng này phải đếm số lần mộtchannel_cdcụ thể đã được dùng trước đó. - In các đặc trưng
channel_cd,freq_channelvàfraud_flag. Kiểm tra đặc trưng vừa tạo.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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)