Xác định độ sâu cây tối ưu
Giờ bạn sẽ tinh chỉnh tham số max_depth của cây quyết định để tìm ra giá trị giúp giảm over-fitting nhưng vẫn giữ được các chỉ số hiệu năng tốt. Bạn sẽ chạy một vòng lặp for qua nhiều giá trị max_depth, huấn luyện một cây quyết định cho mỗi giá trị, rồi tính các chỉ số hiệu năng.
Danh sách depth_list chứa các giá trị ứng viên đã được nạp sẵn cho bạn. Mảng depth_tuning đã được tạo sẵn với 2 cột, trong đó cột đầu chứa các ứng viên độ sâu, và cột kế tiếp là chỗ trống để điền điểm recall. Ngoài ra, các biến đặc trưng và mục tiêu đã được nạp thành train_X, train_Y cho dữ liệu huấn luyện, và test_X, test_Y cho dữ liệu kiểm tra. Cả hai thư viện numpy và pandas đã được nạp lần lượt là np và pd.
Bài tập này là một phần của khóa học
Machine Learning cho Marketing với Python
Hướng dẫn bài tập
- Chạy vòng lặp
fortrên phạm vi từ 0 đến độ dài của danh sáchdepth_list. - Với mỗi ứng viên độ sâu, khởi tạo và fit một bộ phân loại cây quyết định và dự đoán churn trên dữ liệu kiểm tra.
- Với mỗi ứng viên độ sâu, tính điểm recall bằng hàm
recall_score()và lưu vào cột thứ hai củadepth_tunning. - Tạo một
pandasDataFrame từdepth_tuningvới tên cột phù hợp.
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.
# Run a for loop over the range of depth list length
for index in ___(0, len(depth_list)):
# Initialize and fit decision tree with the `max_depth` candidate
mytree = DecisionTreeClassifier(___=depth_list[index])
mytree.fit(___, train_Y)
# Predict churn on the testing data
pred_test_Y = mytree.predict(___)
# Calculate the recall score
depth_tuning[index,1] = ___(test_Y, ___)
# Name the columns and print the array as pandas DataFrame
col_names = ['Max_Depth','Recall']
print(pd.DataFrame(depth_tuning, columns=___))