單一帳戶的頻率特徵
頻率特徵會計算某個事件在過去發生的頻率。建立這類特徵有助於偵測異常行為。在影片中,你學到如何以類別型特徵為基礎,建立頻率特徵。
現在提供的是 Bob 的交易資料。其中有一個欄位叫做 channel_cd,表示 Bob 在每筆交易所使用的付款通道。你將使用 rollapply() 建立一個名為 freq_channel 的頻率特徵,這個特徵是以 channel_cd 欄位為基礎。你可以在主控台使用 ?rollaply 查看該函式的文件說明。
資料集 trans_Bob,以及 zoo 和 dplyr 套件都已載入到你的工作環境。
本練習屬於課程
R 的詐欺偵測
練習說明
- 撰寫一個函式
frequency_fun(),以steps與channel作為輸入,計算步數的長度,並加總「最新的channel在過去出現過幾次」。 - 使用
rollapply作用在transfer_id欄位上,建立特徵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)