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

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 numpypandas đã được nạp lần lượt là nppd.

Bài tập này là một phần của khóa học

Machine Learning cho Marketing với Python

Xem khóa học

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

  • Chạy vòng lặp for trên phạm vi từ 0 đến độ dài của danh sách depth_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ủa depth_tunning.
  • Tạo một pandas DataFrame từ depth_tuning vớ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=___))
Chỉnh sửa và Chạy Mã