शुरू करेंमुफ़्त में शुरू करें

eta को ट्यून करना

अब दूसरे XGBoost हाइपरपैरामीटर्स को ठोस तरीके से ट्यून करने और उनका मॉडल परफॉर्मेंस पर प्रभाव देखने का समय है! आप शुरुआत "eta" यानी learning rate को ट्यून करने से करेंगे.

XGBoost में learning rate एक पैरामीटर है जिसकी वैल्यू 0 और 1 के बीच होती है. "eta" का मान जितना अधिक होगा, फीचर वेट्स पर उतनी ही ज़्यादा पेनल्टी लगेगी, जिससे रेग्युलराइज़ेशन और कड़ा हो जाता है.

यह अभ्यास पाठ्यक्रम का हिस्सा है

XGBoost के साथ Extreme Gradient Boosting

पाठ्यक्रम देखें

अभ्यास निर्देश

  • eta_vals नाम की एक लिस्ट बनाएँ जिसमें ये "eta" वैल्यूज़ हों: 0.001, 0.01, और 0.1.
  • for लूप का उपयोग करके अपनी eta_vals लिस्ट पर इटरेट करें.
  • for लूप की हर इटरेशन में, params के "eta" key को curr_val के बराबर सेट करें. फिर 3-fold क्रॉस-वैलिडेशन चलाएँ जिसमें early stopping (5 राउंड), 10 boosting राउंड, मेट्रिक "rmse", और seed 123 हो. सुनिश्चित करें कि आउटपुट एक DataFrame हो.
  • आखिरी राउंड का RMSE best_rmse लिस्ट में append करें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

# Create your housing DMatrix: housing_dmatrix
housing_dmatrix = xgb.DMatrix(data=X, label=y)

# Create the parameter dictionary for each tree (boosting round)
params = {"objective":"reg:squarederror", "max_depth":3}

# Create list of eta values and empty list to store final round rmse per xgboost model
____ = [____, ____, ____]
best_rmse = []

# Systematically vary the eta 
for curr_val in ____:

    params["___"] = curr_val
    
    # Perform cross-validation: cv_results
    cv_results = ____
    
    
    
    # Append the final round rmse to best_rmse
    ____.____(____["____"].tail().values[-1])

# Print the resultant DataFrame
print(pd.DataFrame(list(zip(eta_vals, best_rmse)), columns=["eta","best_rmse"]))
कोड संपादित करें और चलाएँ