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
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à
labelsbằng cách chuyểnfeature_namessang numpy array và đánh chỉ mục vớisorted_index. - Vẽ biểu đồ cột với các xticks,
feature_importancesđược đánh chỉ mục bằng biếnsorted_index, và dùnglabelslà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()