ฟีเจอร์ความถี่สำหรับบัญชีเดียว
ฟีเจอร์ความถี่ (frequency feature) ใช้นับว่าเหตุการณ์หนึ่ง ๆ เกิดขึ้นบ่อยแค่ไหนในอดีต การสร้างฟีเจอร์เช่นนี้ช่วยตรวจจับพฤติกรรมที่ผิดปกติได้ดียิ่งขึ้น ในวิดีโอที่ผ่านมา คุณได้เรียนรู้วิธีสร้างฟีเจอร์ความถี่จากฟีเจอร์เชิงหมวดหมู่แล้ว
ตอนนี้คุณมีข้อมูลธุรกรรมของ Bob โดยมีคอลัมน์ channel_cd ซึ่งระบุช่องทางการชำระเงินที่ Bob ใช้ในแต่ละธุรกรรม คุณจะสร้างฟีเจอร์ความถี่ชื่อ freq_channel จากคอลัมน์ channel_cd โดยใช้ฟังก์ชัน rollapply() สามารถพิมพ์ ?rollapply ในคอนโซลเพื่อดูเอกสารประกอบฟังก์ชันได้
ชุดข้อมูล trans_Bob และแพ็กเกจ zoo กับ dplyr ถูกโหลดไว้ในพื้นที่ทำงานของคุณแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การตรวจจับการฉ้อโกงใน R
คำแนะนำการฝึกหัด
- เขียนฟังก์ชัน
frequency_fun()ที่รับstepsและchannelเป็น input โดยนับจำนวน steps และรวมจำนวนครั้งที่channelล่าสุดถูกใช้งานในอดีต - สร้างฟีเจอร์
freq_channelโดยใช้ฟังก์ชันrollapplyกับคอลัมน์transfer_idฟีเจอร์นี้ควรนับจำนวนครั้งที่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)