Random forest 특성 중요도
트리 기반 방법의 유용한 점 중 하나는 특성 중요도를 추출할 수 있다는 거예요. 이는 각 특성이 예측에 얼마나 기여하는지를 정량적으로 측정하는 방법입니다. 이를 통해 가장 유용한 특성에 집중해 개선하거나 튜닝할 수 있고, 모델을 복잡하게 만드는 불필요한 특성은 제거하는 데도 도움이 됩니다.
sklearn의 트리 모델에는 모델 학습 후 접근 가능한 .feature_importances_ 속성이 있어요. 여기에는 특성 중요도 점수가 저장됩니다. 보기 좋은 막대그래프(중요도가 큰 순서대로 정렬)를 만들려면 np.argsort()로 정렬된 특성 중요도의 인덱스를 얻어야 합니다.
이 연습은 강의의 일부입니다
Python으로 배우는 금융 분야 Machine Learning
연습 안내
- Random forest 모델(
rfr)의feature_importances_속성을 사용해 특성 중요도를 추출하고,importances변수에 저장하세요. - numpy의
argsort를 사용해 특성 중요도의 인덱스를 큰 값에서 작은 값 순으로 얻고, 정렬된 인덱스를sorted_index변수에 저장하세요. sorted_index리스트를 사용해labels변수의 xtick 레이블을 특성 이름으로 설정하세요.feature_names는sorted_index리스트로 인덱싱할 수 있도록 numpy 배열로 변환해야 합니다.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Get feature importances from our random forest model
importances = rfr.____
# Get the index of importances from greatest importance to least
sorted_index = ____(importances)[::-1]
x = range(len(importances))
# Create tick labels
labels = np.array(____)[____]
plt.bar(x, importances[sorted_index], tick_label=labels)
# Rotate tick labels to vertical
plt.xticks(rotation=90)
plt.show()