Bắt đầu ngayBắt đầu miễn phí

XGBoost: Fit/Predict

Đến lúc bạn tạo mô hình XGBoost đầu tiên! Như Sergey đã minh họa trong video, bạn có thể dùng khuôn mẫu scikit-learn .fit() / .predict() mà bạn đã quen thuộc để xây dựng mô hình XGBoost, vì thư viện xgboost có API tương thích với scikit-learn!

Ở đây, bạn sẽ làm việc với dữ liệu churn. Bộ dữ liệu này chứa dữ liệu giả lập từ một ứng dụng gọi xe, gồm hành vi người dùng trong tháng đầu sử dụng ứng dụng tại một số thành phố giả định, cùng thông tin liệu họ còn dùng dịch vụ sau 5 tháng kể từ khi đăng ký hay không. Dữ liệu đã được nạp sẵn vào DataFrame tên churn_data — hãy khám phá trong Shell!

Mục tiêu của bạn là dùng dữ liệu trong tháng đầu để dự đoán liệu người dùng vẫn tiếp tục sử dụng dịch vụ ở mốc 5 tháng hay không. Đây là thiết lập điển hình cho bài toán dự đoán churn. Để làm điều này, bạn sẽ chia dữ liệu thành tập huấn luyện và kiểm tra, huấn luyện một mô hình xgboost nhỏ trên tập huấn luyện, và đánh giá hiệu năng trên tập kiểm tra bằng cách tính độ chính xác (accuracy).

pandasnumpy đã được nhập là pdnp, và train_test_split đã được nhập từ sklearn.model_selection. Ngoài ra, mảng đặc trưng và mục tiêu đã được tạo sẵn lần lượt là Xy.

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

Xem khóa học

Hướng dẫn bài tập

  • Import xgboost với bí danh xgb.
  • Tạo tập huấn luyện và kiểm tra sao cho 20% dữ liệu dành cho kiểm tra. Dùng random_state bằng 123.
  • Khởi tạo một XGBoostClassifierxg_cl bằng xgb.XGBClassifier(). Chỉ định n_estimators10 bộ học và objective'binary:logistic'. Chưa cần bận tâm ý nghĩa của chúng; bạn sẽ học về các tham số này ở phần sau của khóa học.
  • Fit xg_cl lên tập huấn luyện (X_train, y_train) bằng phương thức .fit().
  • Dự đoán nhãn của tập kiểm tra (X_test) bằng phương thức .predict() và nhấn "Gửi câu trả lời" để in ra độ 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.

# Import xgboost
____

# Create arrays for the features and the target: X, y
X, y = churn_data.iloc[:,:-1], churn_data.iloc[:,-1]

# Create the training and test sets
X_train, X_test, y_train, y_test= ____(____, ____, test_size=____, random_state=123)

# Instantiate the XGBClassifier: xg_cl
xg_cl = ____.____(____='____', ____=____, seed=123)

# Fit the classifier to the training set
____

# Predict the labels of the test set: preds
preds = ____

# Compute the accuracy: accuracy
accuracy = float(np.sum(preds==y_test))/y_test.shape[0]
print("accuracy: %f" % (accuracy))
Chỉnh sửa và Chạy Mã