시작하기무료로 시작하기

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_namessorted_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()
코드 편집 및 실행