- 앙상블 기법 중 하나
- 앙상블에 참여한 모든 결정트리에서 계산한 평균적인 불순도 감소로 특성 중요도를 측정
- 사이킷런의 랜덤 포레스트 구현: 특성 중요도 값을 이미 수집함
- RandomForestClassifier의 feature_importances 속성에서 확인 가능
- SelectFromModel: 사용자가 지정한 임계값을 기반으로 특성 선택
- 트리 기반 모델은 표준화나 정규화가 필요 없음 → 랜덤 포레스트를 훈련하고 각각의 상대적 중요도에 따라 특성에 순위를 매기기 때문
- 특성 중요도의 합: 1
- 결정 트리에서 평균적인 불순도 감소를 기반으로 이 데이터셋에서 가장 판별력이 좋은 특성을 찾을 수 있음
- 중요한 참고 사항
- 모델 해석을 고려할 경우, 랜덤 포레스트에서 두 개 이상의 특성이 매우 상관관계가 높을 경우, 하나의 특성은 매우 높은 순위를 가지지만 다른 특성 정보는 완전히 찾아내지 못할 가능성이 존재
- 특성 중요도 값을 해석하는 것보다 모델 예측 성능에 초점을 둔다면 신경 X
02. RFE
- 재귀적 특성 제거 방법 사용
- 처음에 모든 특성을 사용하여 모델을 만들고, 특성 중요도가 가장 낮은 특성을 제거함
- 그 후 제거된 특성을 빼고 나머지 특성들로 새로운 모델을 만듬
- 미리 정의한 특성 개수가 남을때까지 반복
- n_features_to_select 매개변수: 선택할 특성의 개수를 지정
- 특성의 비율을 지정할 수 있음
- default: 입력 특성 개수의 절반
- step 매개변수: 각 반복에서 제거할 특성의 개수를 지정
- 0~1 사이의 값 지정: 삭제할 특성의 비율
- default: 1
- 기반 모델의 coef_, feature_importances_ 속성을 기준으로 특성을 제거
- importance_getter 매개변수: 사용할 속성을 지정할 수 있음
- ranking_ 속성: 선택한 특성의 우선순위를 볼 수 있음
- estimator_ 속성: 훈련된 기반 모델(랜덤 포레스트) 저장
'머신러닝 & 딥러닝' 카테고리의 다른 글
[머신러닝 & 딥러닝] 데이터 전처리 - 좋은 데이터셋 만들기 (1) | 2025.04.22 |
---|---|
[머신 러닝 & 딥러닝] 랜덤 포레스트 (Random Forest) (0) | 2025.04.22 |
[머신러닝 & 딥러닝] 결정 트리 (Decision Tree) (0) | 2025.04.22 |
[머신러닝 & 딥러닝] K-Means 튜닝 하이퍼파라미터 (0) | 2025.04.21 |
[머신러닝 & 딥러닝] 딥러닝을 시작하기 전에 (0) | 2025.04.21 |