单个账户的频率特征
频率特征用于统计某个事件在过去发生的次数。创建此类特征有助于发现异常行为。在视频中,您学习了如何基于分类特征构建频率特征。
现在,您拿到的是 Bob 的交易数据。其中有一列名为 channel_cd,表示 Bob 进行每笔交易时所使用的支付渠道。您将使用 rollapply() 函数,基于 channel_cd 列创建一个名为 freq_channel 的频率特征。您可以在控制台中使用 ?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)