เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

RandomizedSearchCV ใน Scikit Learn

มาฝึกสร้างออบเจ็กต์ RandomizedSearchCV ด้วย Scikit Learn กัน

กริดไฮเปอร์พารามิเตอร์ควรครอบคลุม max_depth (ค่าทั้งหมดตั้งแต่ 5 ถึง 25 รวมค่าปลาย) และ max_features ('auto' และ 'sqrt')

ตัวเลือกที่ต้องการสำหรับออบเจ็กต์ RandomizedSearchCV มีดังนี้:

  • ใช้ RandomForestClassifier เป็น Estimator โดยตั้งค่า n_estimators เป็น 80
  • Cross validation แบบ 3-fold (cv)
  • ใช้ roc_auc ในการ score โมเดล
  • ใช้ 4 คอร์สำหรับการประมวลผลแบบขนาน (n_jobs)
  • กำหนดให้ refit โมเดลที่ดีที่สุดและส่งคืน training scores
  • สุ่มเพียง 5 โมเดลเพื่อประสิทธิภาพ (n_iter)

ชุดข้อมูล X_train และ y_train ถูกโหลดไว้ให้แล้ว

จำไว้ว่าไฮเปอร์พารามิเตอร์ที่ถูกเลือกจะอยู่ใน cv_results_ โดยมีคอลัมน์แยกสำหรับแต่ละไฮเปอร์พารามิเตอร์ ตัวอย่างเช่น คอลัมน์สำหรับไฮเปอร์พารามิเตอร์ criterion คือ param_criterion

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การปรับ Hyperparameter ใน Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้างกริดไฮเปอร์พารามิเตอร์ตามที่ระบุไว้ในบริบทข้างต้น
  • สร้างออบเจ็กต์ RandomizedSearchCV ตามที่กำหนดไว้ในบริบทข้างต้น
  • Fit ออบเจ็กต์ RandomizedSearchCV กับข้อมูล training
  • เข้าถึงออบเจ็กต์ cv_results_ เพื่อแสดงค่าที่กระบวนการสร้างโมเดลเลือกสำหรับไฮเปอร์พารามิเตอร์ทั้งสอง (max_depth และ max_features)

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Create the parameter grid
param_grid = {'max_depth': list(range(____,26)), 'max_features': [____ , ____]} 

# Create a random search object
random_rf_class = RandomizedSearchCV(
    estimator = ____(n_estimators=____),
    param_distributions = ____, n_iter = ____,
    scoring=____, n_jobs=____, cv = ____, refit=____, return_train_score = ____ )

# Fit to the training data
____.fit(X_train, y_train)

# Print the values used for both hyperparameters
print(random_rf_class.cv_results_[____])
print(random_rf_class.cv_results_[____])
แก้ไขและรันโค้ด