ออบเจกต์ RandomizedSearchCV
เช่นเดียวกับไลบรารี GridSearchCV ใน Scikit Learn RandomizedSearchCV มีฟีเจอร์ที่มีประโยชน์มากมายสำหรับการทำ Random Search อย่างมีประสิทธิภาพ ในแบบฝึกหัดนี้จะสร้างออบเจกต์ RandomizedSearchCV โดยปรับเปลี่ยนเพียงเล็กน้อยจาก GridSearchCV
ตัวเลือกที่ต้องการมีดังนี้:
- Estimator เป็น Gradient Boosting Classifier แบบค่าเริ่มต้น
- Cross validation แบบ 5-fold
- ใช้ accuracy ในการให้คะแนนโมเดล
- ใช้ 4 cores สำหรับการประมวลผลแบบขนาน
- ให้ refit โมเดลที่ดีที่สุดและส่งคืนคะแนน training
- สุ่มตัวอย่างโมเดลจำนวน 10 โมเดล
กริด hyperparameter ควรครอบคลุม learning_rate (150 ค่าระหว่าง 0.1 ถึง 2) และ min_samples_leaf (ทุกค่าตั้งแต่ 20 ถึง 64 รวมค่าปลายทั้งสอง)
ชุดข้อมูล X_train และ y_train พร้อมใช้งานแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การปรับ Hyperparameter ใน Python
คำแนะนำการฝึกหัด
- สร้าง parameter grid ตามที่กำหนดไว้ในโจทย์ข้างต้น
- สร้างออบเจกต์
RandomizedSearchCVตามที่ระบุไว้ในโจทย์ข้างต้น - Fit ออบเจกต์
RandomizedSearchCVกับข้อมูล training - แสดงค่าที่กระบวนการสร้างโมเดลเลือกสำหรับแต่ละ hyperparameter
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create the parameter grid
param_grid = {'learning_rate': np.linspace(____,____,150), 'min_samples_leaf': list(range(____,65))}
# Create a random search object
random_GBM_class = ____(
estimator = ____,
____ = param_grid,
____ = 10,
scoring='____', n_jobs=____, cv = ____, refit=____, return_train_score = ____)
# Fit to the training data
random_GBM_class.fit(____, ____)
# Print the values used for both hyperparameters
print(random_GBM_class.____['param_learning_rate'])
print(random_GBM_class.cv_results_['____'])