GridSearchCV กับ Scikit Learn
โมดูล GridSearchCV จาก Scikit Learn มีฟีเจอร์ที่เป็นประโยชน์มากมายสำหรับการทำ grid search อย่างมีประสิทธิภาพ ตอนนี้ลองนำความรู้ไปใช้จริงด้วยการสร้างออบเจกต์ GridSearchCV ที่มีพารามิเตอร์ตามที่กำหนด
เงื่อนไขที่ต้องการมีดังนี้:
- ใช้ Random Forest Estimator โดยกำหนด split criterion เป็น 'entropy'
- ใช้ cross validation แบบ 5-fold
- ไฮเปอร์พารามิเตอร์ที่ต้องการคือ
max_depth(2, 4, 8, 15) และmax_features('auto' กับ 'sqrt') - ใช้
roc_aucสำหรับการให้คะแนนโมเดล - ใช้ 4 core สำหรับการประมวลผลแบบขนาน
- ตรวจสอบให้แน่ใจว่ามีการ refit โมเดลที่ดีที่สุด และส่งคืนคะแนนชุดข้อมูล training
ชุดข้อมูลที่ใช้ได้มี X_train, X_test, y_train และ y_test
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การปรับ Hyperparameter ใน Python
คำแนะนำการฝึกหัด
- สร้าง Random Forest estimator ตามเงื่อนไขที่ระบุไว้ข้างต้น
- สร้าง parameter grid ตามเงื่อนไขที่ระบุไว้ข้างต้น
- สร้างออบเจกต์
GridSearchCVตามเงื่อนไขข้างต้น โดยใช้องค์ประกอบทั้งสองที่สร้างไว้ในสองขั้นตอนก่อนหน้า
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create a Random Forest Classifier with specified criterion
rf_class = RandomForestClassifier(____=____)
# Create the parameter grid
param_grid = {____: ____, ____: ____}
# Create a GridSearchCV object
grid_rf_class = GridSearchCV(
estimator=____,
param_grid=____,
scoring=____,
n_jobs=____,
cv=____,
refit=____, return_train_score=____)
print(grid_rf_class)