การปรับแต่งโมเดล
วิธีง่าย ๆ ในการปรับโมเดล Random Forest ให้รับมือกับข้อมูลการฉ้อโกงที่ไม่สมดุลอย่างมาก คือการใช้ ตัวเลือก class_weights ตอนนิยามโมเดล sklearn อย่างไรก็ตาม อย่างที่จะเห็น วิธีนี้ค่อนข้างหยาบและอาจไม่ได้ผลในทุกกรณี
ในแบบฝึกหัดนี้ จะได้ลองใช้โหมด weight = "balanced_subsample" กับโมเดล Random Forest จากแบบฝึกหัดก่อนหน้า ข้อมูลถูกแบ่งเป็นชุดฝึกและชุดทดสอบเรียบร้อยแล้ว ได้แก่ X_train, X_test, y_train, y_test และได้ import ฟังก์ชัน metrics ไว้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การตรวจจับการฉ้อโกงด้วย Python
คำแนะนำการฝึกหัด
- กำหนดอาร์กิวเมนต์
class_weightของ classifier เป็นbalanced_subsample - Fit โมเดลกับชุดข้อมูลฝึก
- รับค่าทำนายและค่าความน่าจะเป็นจาก
X_test - คำนวณ
roc_auc_score, classification report และ confusion matrix
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Define the model with balanced subsample
model = RandomForestClassifier(class_weight='____', random_state=5)
# Fit your training model to your training set
model.fit(____, ____)
# Obtain the predicted values and probabilities from the model
predicted = ____.____(____)
probs = ____.____(____)
# Print the roc_auc_score, the classification report and confusion matrix
print(____(____, ____))
print(____(____, ____))
print(____(____, ____))