ใช้ GridSearchCV เพื่อหาพารามิเตอร์ที่ดีที่สุด
ในแบบฝึกหัดนี้ เราจะปรับแต่งโมเดลให้มีระบบมากขึ้น โดยใช้ GridSearchCV ทำงานให้แทน
ด้วย GridSearchCV สามารถกำหนดได้ว่าต้องการใช้เมตริกใดในการประเมินตัวเลือกต่าง ๆ เนื่องจากการตรวจจับการฉ้อโกงให้ความสำคัญกับการจับเคสฉ้อโกงให้ได้มากที่สุด จึงสามารถปรับค่าโมเดลเพื่อให้ได้คะแนน Recall ที่ดีที่สุด หากต้องการลดจำนวน false positive ด้วย ก็สามารถเลือก optimize ด้วย F1-score ซึ่งจะให้ความสมดุลระหว่าง Precision และ Recall
GridSearchCV ถูก import จาก sklearn.model_selection ไว้แล้ว มาลองใช้กันเลย!
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การตรวจจับการฉ้อโกงด้วย Python
คำแนะนำการฝึกหัด
- กำหนด parameter grid ว่าต้องการทดลองใช้จำนวนต้นไม้ที่ 1 และ 30 ต้น และทดลอง split criterion แบบ
giniและentropy - กำหนดโมเดลเป็น RandomForestClassifier อย่างง่าย โดยตั้งค่า random_state ไว้ที่ 5 เพื่อให้เปรียบเทียบโมเดลต่าง ๆ ได้
- ตั้งค่าตัวเลือก
scoringให้ optimize สำหรับ recall - Fit โมเดลกับข้อมูลฝึก
X_trainและy_trainจากนั้นดึงพารามิเตอร์ที่ดีที่สุดของโมเดลออกมา
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Define the parameter sets to test
param_grid = {'n_estimators': [____, ____], 'max_features': ['auto', 'log2'], 'max_depth': [4, 8], 'criterion': ['____', '____']
}
# Define the model to use
model = ____(random_state=5)
# Combine the parameter sets with the defined model
CV_model = GridSearchCV(estimator=model, param_grid=param_grid, cv=5, scoring='____', n_jobs=-1)
# Fit the model to our training data and obtain best parameters
CV_model.fit(____, ____)
CV_model.____