Random over-sampling
รายการโอนเงินที่เป็นการฉ้อโกงมีสัดส่วนน้อยมากในชุดข้อมูล คราวนี้จะทำการ over-sample รายการฉ้อโกง เพื่อ ปรับสมดุลการกระจายของคลาส โดย feature Class ในชุดข้อมูล creditcard มีค่าเป็น 1 สำหรับกรณีฉ้อโกง และ 0 สำหรับกรณีปกติ
สามารถใช้ console เพื่อแสดงคอลัมน์ของ 'creditcard' ด้วย str(), แสดง 6 แถวแรกของชุดข้อมูลด้วย head() และตรวจสอบความสมดุลของ Class ด้วย table(creditcard$Class)
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การตรวจจับการฉ้อโกงใน R
คำแนะนำการฝึกหัด
- โหลดแพ็กเกจ
ROSE - กำหนดค่า
n_newเป็นจำนวนรายการที่ต้องการในชุดข้อมูลที่ over-sample แล้ว โดยให้ชุดข้อมูลใหม่ประกอบด้วยรายการฉ้อโกง 30% และรายการปกติ 70% วิธีคำนวณคือนำจำนวนรายการ ปกติ ที่มีอยู่หารด้วยสัดส่วนที่ต้องการของรายการปกติในชุดข้อมูลที่ over-sample แล้ว - ใช้ฟังก์ชัน
ovun.sample()สำหรับการ over-sampling โดยใช้Class ~ .เป็น formula - ตรวจสอบความสมดุลของคลาสในชุดข้อมูลที่ over-sample แล้ว
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Load ROSE
___
# Calculate the total number of required cases in the over-sampled dataset
print(table(creditcard$Class))
n_new <- ___
# Over-sample
oversampling_result <- ___(formula = ___, data = ___,
method = ___, N = ___, seed = 2018)
# Verify the Class-balance of the over-sampled dataset
oversampled_credit <- oversampling_result$data
prop.table(___(___))