ปรับแต่ง Random Forest สำหรับการตรวจจับการฉ้อโกง
ในแบบฝึกหัดนี้ เราจะเจาะลึกตัวเลือกต่าง ๆ ของ random forest classifier โดยจะกำหนดค่าน้ำหนักและปรับรูปทรงของ decision tree ในป่าไม้ และจะกำหนดค่าน้ำหนักด้วยตนเอง เพื่อชดเชยความไม่สมดุลของข้อมูลในระดับหนึ่ง ในกรณีนี้ เรามีข้อมูลการฉ้อโกง 300 รายการ และข้อมูลปกติ 7,000 รายการ ดังนั้นการกำหนดอัตราส่วนน้ำหนักเป็น 1:12 จะทำให้สัดส่วนการฉ้อโกงอยู่ที่ 1/3 ต่อข้อมูลปกติ 2/3 ซึ่งเพียงพอสำหรับการเทรนโมเดล
ข้อมูลในแบบฝึกหัดนี้แบ่งเป็นชุดฝึกและชุดทดสอบเรียบร้อยแล้ว จึงต้องโฟกัสเฉพาะการกำหนดโมเดลเท่านั้น จากนั้นใช้ฟังก์ชัน get_model_results() เป็นทางลัด ซึ่งฟังก์ชันนี้จะ fit โมเดลกับข้อมูลฝึก พยากรณ์ผล และคำนวณค่าเมตริกประสิทธิภาพ เช่นเดียวกับขั้นตอนที่ทำในแบบฝึกหัดก่อนหน้า
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การตรวจจับการฉ้อโกงด้วย Python
คำแนะนำการฝึกหัด
- เปลี่ยนตัวเลือก
weightเพื่อกำหนดอัตราส่วนระหว่างกรณีไม่ฉ้อโกงและฉ้อโกงเป็น 1 ต่อ 12 และกำหนดเกณฑ์การแบ่งเป็น 'entropy' - กำหนดความลึกสูงสุดเป็น 10
- กำหนดจำนวนตัวอย่างขั้นต่ำใน leaf node เป็น 10
- กำหนดจำนวนต้นไม้ที่ใช้ในโมเดลเป็น 20
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Change the model options
model = RandomForestClassifier(bootstrap=True, class_weight={0:____, 1:____}, criterion='____',
# Change depth of model
max_depth=____,
# Change the number of samples in leaf nodes
min_samples_leaf=____,
# Change the number of trees to use
n_estimators=____, n_jobs=-1, random_state=5)
# Run the function get_model_results
get_model_results(X_train, y_train, X_test, y_test, model)