- 피쳐 중요도(Feature Importance)
- 타겟 변수를 예측하는데 얼마나 유용한 지에 따라 피쳐에 점수를 할당하여 중요도를 측정하는 방법
- Model-specific vs Model-agnostic
- Model-specific: 머신러닝 모델 자체에서 피쳐 중요도 계산이 가능한 경우
- Model-agnostic: 모델에서 제공하는 기능에 의존하지 않고 모델을 학습한 후에 적용되는 피쳐 중요도 계산법
- Boosting Tree 피쳐 중요도(Model-specific)
- LightGBM 피쳐 중요도 함수
→학습된 LightGBM 모델 클래스에서 feature_importance(importance_type) 함수로 피쳐 중요도 계산 가능
→importance_type 값에 'split'(트리를 만드는데 피쳐가 얼마나 사용됐는가), 'gain'(피쳐를 이용했을 때 얼마나 gain값이 나오는가), 디폴트는 'split' - XGBoost 피쳐 중요도 함수
→ 학습된 XGBoost 모델 클래스에 gest_score(importance_type) 함수로 피쳐 중요도 계산 가능
→importance_type값의 디폴트는 'weight'
→weight: 트리를 만드는데 피쳐가 몇 번 사용 됐는가
→gain: 피쳐를 이용했을 때 얼마나 gain값이 나오는가
→cover: 전체의 coverage를 계산
→total_gain, total_cover: 전체의 평균이 아닌 합으로 계산하는 방식 - CatBoost 피쳐 중요도 함수
→학습된 CatBoost 모델 클래스에 get_feature_importance(type) 함수로 피쳐 중요도 계산 가능
→type 값의 디폴트는 'FeatureImportance'
→FeatureImportance, ShapValues, Interaction, PredictionDiff 등이 존재
- LightGBM 피쳐 중요도 함수
- Permutation 피쳐 중요도(Model-agnostic)
- 피쳐 값들을 랜덤하게 셔플링해서 모델의 에러를 측정
- 중요한 피쳐인 경우 모델의 에러가 커질 것이기 때문에 에러가 클수록 중요한 피쳐로 해석
- 피쳐 선택(Feature Selection)
- 머신러닝 모델이 타겟 변수를 예측하는데 유용한 피쳐와 유용하지 않은 피쳐를 구분해서 선택하는 과정
- 피쳐 선택을 통해 모델의 목잡도를 낮춤으로써 오버피팅 방지 및 모델의 속도 향상 가능
- Filter Method: 피쳐들의 상관관계를 파악해서 피쳐를 선택하는 방법(가장 간단하게 사용 가능)
- Wrapper Method: 예측모델을 사용해서 피쳐의 서브셋을 계속해서 테스트하는 방법
- Embedded Method: 학습 알고리즘 자체에 피쳐 선택 기능이 들어가 있는 경우
본 포스트의 학습 내용은 부스트클래스
<AI 엔지니어 기초 다지기 : 부스트캠프 AI Tech 준비과정>
강의 내용을 바탕으로 작성되었습니다.