Random forests
Random Forests là một phương pháp ensemble kinh điển và mạnh mẽ, tận dụng các cây quyết định riêng lẻ thông qua bootstrap aggregation (gọi tắt là bagging). Hai siêu tham số chính của mô hình này là số lượng cây và độ sâu tối đa của mỗi cây. Trong bài tập này, bạn sẽ triển khai và đánh giá một bộ phân loại random forest đơn giản với một số giá trị siêu tham số cố định.
X_train, y_train, X_test, y_test đã có sẵn trong workspace của bạn. pandas là pd, numpy là np, và sklearn cũng đã sẵn sàng. RandomForestClassifier() từ sklearn.ensemble cũng có sẵn, cùng với roc_curve() và auc() từ sklearn.metrics.
Bài tập này là một phần của khóa học
Dự đoán CTR với Machine Learning trong Python
Hướng dẫn bài tập
- Tạo một bộ phân loại random forest với 50 cây và độ sâu tối đa là 5.
- Huấn luyện bộ phân loại và lấy điểm xác suất qua
.predict_proba(), và dự đoán qua.predict()cho dữ liệu kiểm tra. - Đánh giá AUC của đường cong ROC cho bộ phân loại bằng cách dùng
roc_curve()để tínhfprvàtpr, rồi áp dụngauc()trên kết quả. - Đánh giá precision và recall cho bộ phân loại.
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 random forest classifier with specified params
clf = ____(____ = 50, ____ = 5)
# Train classifier - predict probability score and label
y_score = clf.____(X_train, y_train).____(X_test)
y_pred = clf.____(X_train, y_train).____(X_test)
# Get ROC curve metrics
fpr, tpr, thresholds = ____(y_test, y_score[:, 1])
print("ROC of AUC: %s"%(____(fpr, tpr)))
# Get precision and recall
precision = ____(y_test, y_pred, average = 'weighted')
recall = ____(y_test, y_pred, average = 'weighted')
print("Precision: %s, Recall: %s" %(precision, recall))