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"]))