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

XGBoost में regularization का उपयोग

वीडियो में l1 regularization का उदाहरण देखने के बाद, अब आप l2 regularization penalty - जिसे "lambda" भी कहते हैं - को बदलेंगे और Ames housing डेटासेट पर समग्र मॉडल प्रदर्शन पर उसका प्रभाव देखेंगे.

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

XGBoost के साथ Extreme Gradient Boosting

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

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

  • पहले की तरह X और y से अपना DMatrix बनाएँ.
  • एक शुरुआती पैरामीटर डिक्शनरी बनाएँ जिसमें "objective" "reg:squarederror" हो और "max_depth" 3 हो.
  • for लूप के अंदर xgb.cv() का उपयोग करें और वर्तमान l2 मान (reg) पास करके "lambda" वैल्यू को व्यवस्थित रूप से बदलें.
  • प्रत्येक cross-validated xgboost मॉडल के लिए अंतिम boosting राउंड से "test-rmse-mean" जोड़ें.
  • परिणाम देखने के लिए 'उत्तर सबमिट करें' दबाएँ. आपको क्या दिखता है?

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

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

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

reg_params = [1, 10, 100]

# Create the initial parameter dictionary for varying l2 strength: params
params = {"____":"____","____":____}

# Create an empty list for storing rmses as a function of l2 complexity
rmses_l2 = []

# Iterate over reg_params
for reg in reg_params:

    # Update l2 strength
    params["lambda"] = ____
    
    # Pass this updated param dictionary into cv
    cv_results_rmse = ____.____(dtrain=____, params=____, nfold=2, num_boost_round=5, metrics="rmse", as_pandas=True, seed=123)
    
    # Append best rmse (final round) to rmses_l2
    ____.____(____["____"].tail(1).values[0])

# Look at best rmse per l2 param
print("Best rmse as a function of l2:")
print(pd.DataFrame(list(zip(reg_params, rmses_l2)), columns=["l2", "rmse"]))
कोड संपादित करें और चलाएँ