Grid search
การปรับไฮเปอร์พารามิเตอร์สามารถทำได้ผ่าน sklearn โดยระบุค่าพารามิเตอร์ต่าง ๆ ซึ่งสามารถกำหนดได้โดยใช้ฟังก์ชันจาก numpy วิธีหนึ่งที่นิยมใช้คือ grid search ซึ่งจะค้นหาทุกชุดผสมของไฮเปอร์พารามิเตอร์ที่ระบุผ่าน param_grid อย่างละเอียดถี่ถ้วน ในแบบฝึกหัดนี้ จะใช้ grid search เพื่อหาค่าไฮเปอร์พารามิเตอร์ที่เหมาะสมที่สุดสำหรับ random forest classifier โดยใช้ AUC ของ ROC curve เป็นฟังก์ชัน scoring
X_train, y_train, X_test, y_test พร้อมใช้งานใน workspace แล้ว รวมถึง pandas ในชื่อ pd, numpy ในชื่อ np, และ sklearn นอกจากนี้ GridSearchCV() จาก sklearn.model_selection ก็พร้อมใช้งานเช่นกัน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การพยากรณ์ CTR ด้วย Machine Learning ใน Python
คำแนะนำการฝึกหัด
- สร้างรายการค่าสำหรับไฮเปอร์พารามิเตอร์แต่ละตัวได้แก่
n_estimatorsและmax_depth - สร้าง random forest classifier
- ตั้งค่า grid search เพื่อวนซ้ำทุกชุดผสมของไฮเปอร์พารามิเตอร์
- แสดงค่า AUC ที่ดีที่สุดโดยใช้
.best_score_และ estimator ที่ให้ผลดีที่สุดโดยใช้.best_estimator_
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create list of hyperparameters
n_estimators = [10, 50]
max_depth = [5, 20]
param_grid = {'n_estimators': ____, 'max_depth': ____}
# Use Grid search CV to find best parameters
print("starting RF grid search.. ")
rf = ____()
clf = ____(estimator = rf, param_grid = ____, scoring = 'roc_auc')
clf.fit(X_train, y_train)
print("Best Score: ")
print(clf.____)
print("Best Estimator: ")
print(clf.____)