Đo lường độ chính xác
Bây giờ bạn sẽ thực hành sử dụng API học của XGBoost thông qua khả năng cross-validation tích hợp sẵn. Như Sergey đã đề cập ở video trước, XGBoost đạt hiệu năng và hiệu quả cao nhờ sử dụng cấu trúc dữ liệu được tối ưu riêng cho tập dữ liệu, gọi là DMatrix.
Ở bài trước, các tập dữ liệu đầu vào đã được chuyển đổi thành dữ liệu DMatrix ngay trong quá trình chạy, nhưng khi bạn dùng đối tượng cv của xgboost, bạn cần chuyển dữ liệu sang DMatrix một cách tường minh trước. Vì vậy, ở đây bạn sẽ làm bước đó trước khi chạy cross-validation trên churn_data.
Bài tập này là một phần của khóa học
Gradient Boosting Cực Mạnh với XGBoost
Hướng dẫn bài tập
- Tạo một
DMatrixtên làchurn_dmatrixtừchurn_databằngxgb.DMatrix(). Các đặc trưng nằm trongXvà nhãn nằm trongy. - Thực hiện cross-validation 3-fold bằng cách gọi
xgb.cv().dtrainlàchurn_dmatrixcủa bạn,paramslà từ điển tham số,nfoldlà số lượng fold cross-validation (3),num_boost_roundlà số lượng cây cần xây dựng (5),metricslà chỉ số bạn muốn tính (ở đây là"error", chúng ta sẽ chuyển đổi sang độ chính xác).
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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]))