เปรียบเทียบ SMOTE กับข้อมูลต้นฉบับ
ในแบบฝึกหัดที่แล้ว เราพบว่าการใช้ SMOTE ช่วยเพิ่มจำนวนตัวอย่างของ minority class ได้อย่างชัดเจน คราวนี้มาเปรียบเทียบผลลัพธ์เหล่านั้นกับข้อมูลต้นฉบับ เพื่อทำความเข้าใจว่าเกิดอะไรขึ้นจริง ๆ เริ่มจากดู value counts ของข้อมูลเก่าและใหม่ แล้วพล็อต scatter plot ทั้งสองชุดเคียงกัน โดยจะใช้ฟังก์ชันที่กำหนดไว้ล่วงหน้าชื่อ compare_plot() ซึ่งรับอาร์กิวเมนต์ดังนี้: X, y, X_resampled, y_resampled, method='' ฟังก์ชันนี้จะพล็อตข้อมูลต้นฉบับและข้อมูลที่ resample แล้วใน scatter plot เคียงกัน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การตรวจจับการฉ้อโกงด้วย Python
คำแนะนำการฝึกหัด
- พิมพ์ value counts ของ label ต้นฉบับ
yโดยระวังว่าyปัจจุบันเป็น Numpy array ดังนั้นในการใช้ value counts จึงต้องแปลงyกลับเป็น pandas Series ก่อน - ทำซ้ำขั้นตอนเดิมแล้วพิมพ์ value counts ของ
y_resampledเพื่อดูว่าความสมดุลระหว่างสองคลาสเปลี่ยนแปลงไปอย่างไรหลังใช้ SMOTE - เรียกใช้ฟังก์ชัน
compare_plot()ที่กำหนดไว้ล่วงหน้ากับข้อมูลต้นฉบับและข้อมูลที่ resample แล้ว เพื่อดู scatter plot ทั้งสองเคียงกัน
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Print the value_counts on the original labels y
print(pd.value_counts(pd.Series(____)))
# Print the value_counts
print(____(____(____)))
# Run compare_plot
compare_plot(____, ____, ____, ____, method='SMOTE')