Pemelajar dasar linear
Setelah Anda menggunakan pohon sebagai model dasar di XGBoost, sekarang mari gunakan jenis model dasar lain yang dapat dipakai dengan XGBoost — pemelajar linear. Meskipun model ini tidak sesering itu digunakan di XGBoost, model ini memungkinkan Anda membangun regresi linear dengan regularisasi menggunakan API pembelajaran XGBoost yang andal. Namun, karena jarang digunakan, Anda perlu memakai fungsi bawaan XGBoost yang tidak kompatibel dengan scikit-learn untuk membangun model, seperti xgb.train().
Untuk melakukannya, Anda harus membuat kamus parameter yang menjelaskan jenis booster yang ingin digunakan (mirip dengan saat Anda membuat kamus di Bab 1 ketika Anda menggunakan xgb.cv()). Pasangan key-value yang mendefinisikan tipe booster (model dasar) yang Anda perlukan adalah "booster":"gblinear".
Setelah Anda membuat modelnya, Anda dapat menggunakan metode .train() dan .predict() dari model tersebut seperti yang telah Anda lakukan sebelumnya.
Di sini, data sudah dibagi menjadi himpunan latih dan uji, sehingga Anda dapat langsung membuat objek DMatrix yang diperlukan oleh API pembelajaran XGBoost.
Latihan ini adalah bagian dari kursus
Extreme Gradient Boosting dengan XGBoost
Petunjuk latihan
- Buat dua objek
DMatrix—DM_trainuntuk himpunan latih (X_traindany_train), danDM_test(X_testdany_test) untuk himpunan uji. - Buat kamus parameter yang mendefinisikan tipe
"booster"yang akan Anda gunakan ("gblinear") serta"objective"yang akan Anda minimalkan ("reg:squarederror"). - Latih model menggunakan
xgb.train(). Anda harus menentukan argumen untuk parameter berikut:params,dtrain, dannum_boost_round. Gunakan5boosting rounds. - Prediksi label pada himpunan uji menggunakan
xg_reg.predict()dengan meneruskanDM_test. Simpan kepreds. - Tekan 'Kirim Jawaban' untuk melihat RMSE!
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Convert the training and testing sets into DMatrixes: DM_train, DM_test
DM_train = ____
DM_test = ____
# Create the parameter dictionary: params
params = {"____":"____", "____":"____"}
# Train the model: xg_reg
xg_reg = ____.____(____ = ____, ____=____, ____=____)
# Predict the labels of the test set: preds
preds = ____
# Compute and print the RMSE
rmse = np.sqrt(mean_squared_error(y_test,preds))
print("RMSE: %f" % (rmse))