Mengukur akurasi
Sekarang Anda akan berlatih menggunakan API pembelajaran XGBoost melalui kemampuan cross-validation bawaan. Seperti yang dibahas Sergey pada video sebelumnya, XGBoost meraih kinerja dan efisiensi yang diakui dengan memanfaatkan struktur data teroptimasi miliknya untuk himpunan data yang disebut DMatrix.
Pada latihan sebelumnya, himpunan data masukan diubah menjadi data DMatrix secara langsung, tetapi saat Anda menggunakan objek cv dari xgboost, Anda harus terlebih dahulu secara eksplisit mengonversi data Anda menjadi DMatrix. Jadi, itulah yang akan Anda lakukan di sini sebelum menjalankan cross-validation pada churn_data.
Latihan ini adalah bagian dari kursus
Extreme Gradient Boosting dengan XGBoost
Petunjuk latihan
- Buat
DMatrixbernamachurn_dmatrixdarichurn_datamenggunakanxgb.DMatrix(). Fitur tersedia dalamXdan label dalamy. - Lakukan cross-validation 3-fold dengan memanggil
xgb.cv().dtrainadalahchurn_dmatrixAnda,paramsadalah kamus parameter Anda,nfoldadalah jumlah fold cross-validation (3),num_boost_roundadalah jumlah pohon yang ingin kita bangun (5),metricsadalah metrik yang ingin Anda hitung (ini akan berupa"error", yang akan kita konversi menjadi akurasi).
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Create arrays for the features and the target: X, y
X, y = churn_data.iloc[:,:-1], churn_data.iloc[:,-1]
# Create the DMatrix from X and y: churn_dmatrix
churn_dmatrix = ____(data=____, label=____)
# Create the parameter dictionary: params
params = {"objective":"reg:logistic", "max_depth":3}
# Perform cross-validation: cv_results
cv_results = ____(dtrain=____, params=____,
nfold=____, num_boost_round=____,
metrics="____", as_pandas=____, seed=123)
# Print cv_results
print(cv_results)
# Print the accuracy
print(((1-cv_results["test-error-mean"]).iloc[-1]))