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

Tầm quan trọng của đặc trưng trong Gradient Boosting

Tương tự như random forests, bạn có thể trích xuất độ quan trọng của đặc trưng từ các mô hình gradient boosting để xem đặc trưng nào dự đoán tốt nhất. Đôi khi nên thử nhiều mô hình cây khác nhau và so sánh độ quan trọng của đặc trưng từ tất cả các mô hình. Cách này giúp trung bình hóa những khác biệt bất thường do một mô hình cụ thể gây ra.

Độ quan trọng của đặc trưng được lưu dưới dạng numpy array trong thuộc tính .feature_importances_ của mô hình gradient boosting. Bạn sẽ cần lấy chỉ mục đã sắp xếp của các độ quan trọng bằng np.argsort() để vẽ biểu đồ đẹp. Ta muốn các đặc trưng từ lớn đến nhỏ, nên sẽ dùng cú pháp chỉ mục của Python để đảo ngược thứ tự như feat_importances[::-1].

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

Machine Learning cho Tài chính bằng Python

Xem khóa học

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

  • Đảo ngược biến sorted_index để sắp xếp từ lớn đến nhỏ bằng chỉ mục Python.
  • Tạo danh sách nhãn đặc trưng đã sắp xếp là labels bằng cách chuyển feature_names sang numpy array và đánh chỉ mục với sorted_index.
  • Vẽ biểu đồ cột với các xticks, feature_importances được đánh chỉ mục bằng biến sorted_index, và dùng labels làm nhãn cho các xtick.

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.

# Extract feature importances from the fitted gradient boosting model
feature_importances = gbr.feature_importances_

# Get the indices of the largest to smallest feature importances
sorted_index = np.argsort(feature_importances)[::____]
x = range(features.shape[1])

# Create tick labels 
labels = np.array(feature_names)[____]

plt.bar(____, feature_importances[____], tick_label=____)

# Set the tick lables to be the feature names, according to the sorted feature_idx
plt.xticks(rotation=90)
plt.show()
Chỉnh sửa và Chạy Mã