BraveTiger
CH5. 머신러닝_Feature Selection/Feature importance 본문
Feature Selection
모델을 구성하는 주요 피처들을 선택
- 불필요한 다수의 피처들로 인해 모델 성능을 떨어뜨릴 가능성(OverFitting) 제거
- 설명 가능한 모델이 될 수 있도록 피처들을 선별
Feature Selection의 유형
- feature의 분포
- feature간의 상관
- 결정값과 독립성
- feature importance 기반
Sklearn Feature Selection 지원
- 모델 기반
- RFE(Recursive Feature Elimination)
- 모델 최초 학습 후 Feature 중요도 산정
- feature 중요도가 낮은 속성들을 차례로 제거해 나가면서 반복적으로 학습/평가를 수행하여 최적의 feature 추출
- 수행시간이 오래 걸리고, 중요도가 낮은 feature를 제거하는 매커니즘이 정확한 feature selection을 찾는 목표에 부합하지 않을 수 있음
- SelectFromModel
- 모델 최초 학습 후 선정된 feature 중요도에 따라 평균/중앙값의 특정 비율 이상인 feature들을 선택
왜 Feature importance는 절대적인 Feature Selection의 기준이 될 수 없는가?
- feature importance는 최적 tree 구조를 만들기 위해 feature들의 impurity(불순도)가 중요 기준임 즉, 정보 이득 관점
- 결정값과 관련이 없어도 feature importance가 높아질 수 있다.
- feature importance는 학습 데이터를 기반으로 생성되므로 테스트 데이터에서 달라질 수 있다.
- feature importance는 수치형의 높은 cardinality feature에 편향되어 있다.
즉 학습데이터에 대한 영향도 있을 뿐더러 tree 기반 모델의 feature importance는 최적의 트리 분할에 대한 기준이다.
Permutation Importance
특정 feature 값을 완전히 변조했을 때 모델 성능이 얼마나 저하되는지를 기준으로 해당 피처의 중요도를 산정
- 학습 데이터를 제거하거나 변조하면 다시 재 학습을 수행해야 하므로 시간이 오래 걸림
- 일반적으로 테스트 데이터(검증 데이터)에 특정 피처들을 반복적으로 변조한 뒤 해당 feature의 중요도를 평균적으로 산정
Permuatation Importance 프로세스
- 모델 학습(train data) 이 때의 성능이 기준 평가 성능
- 특정 feaeture의 데이터를 k번 random shuffling(validation or test)함.
- shuffle 했을 때 모델의 성능을 측정
- k번 iteration 수행
- 기준 평가 성능에서 모델 성능이 얼마나 저하되었는지 평가
프로세스 3줄 요약
- 기준 평가 성능을 0.9라고 가정한다.
- 총 10번 반복했을 때 성능이 [0.7, 0.6, 0.8, 0.5, 0.7, 0.7, 0.8, 0.8, 0.4, 0.7]이 나왔다고 가정했을 때 이 값들의 평균은 0.67 이다.
- 0.9 - 0.67 = 0.23 즉 해당 feature는 0.23만큼의 feautre importance를 갖고 있다. 기준 평가 성능을 많이 떨어뜨리는 feature라면 중요도가 높지 않은 것.
(기준 평가 성능이 감소한다면 중요 feature 그대로이거나 좋아지면 중요하지 않은 feature)
Permutation Importance 의 장점
- 모델을 재학습 시킬 필요가 없다.
- feature importance는 특정 feature를 제거하고 모델을 재학습 시켜야 함.
- Permutation Importance는 특정 feature를 노이즈로 만드는 것.
- 각 Feature 의 중요도는 ‘partial importance’가 아니다.
- 각 feature 중요도에는 Target뿐만 아니라 다른 feature와 교호작용도 포함된다.
Permutation Importance 의 단점
- RandomShuffling과정을 거치기 때문에 실행마다 다른 결과를 얻을 수 있다.
- 적절한 iteration이 필요(연산량과 시간 증가)
- Feature 를 무작위로 섞다보면 매우 비현실적인 데이터 조합이 생성될 가능성이 높다.
따라서 미리 변수들 간 상관관계가 높은지 확인하고 이를 염두한 결과 해석이 필요
Permutation Importance vs Feature Importance
https://colab.research.google.com/drive/1TYCkIYBSYvuQEo1R0mI74XCcvlzsHA0I#scrollTo=Spfd0BTOcV0y
Google Colaboratory Notebook
Run, share, and edit Python notebooks
colab.research.google.com
'취업 준비 > AIVLE SCHOOL' 카테고리의 다른 글
CH5. 머신러닝_Ensemble(2) - Boosting (0) | 2023.03.28 |
---|---|
CH5. 머신러닝_Ensemble(1) - Voting/Bagging (0) | 2023.03.27 |
CH5. 머신러닝_회귀(3) (0) | 2023.03.27 |
CH5. 머신러닝_DecisionTreeClassifier (0) | 2023.03.27 |
CH5. 머신러닝_LogisticRegression (0) | 2023.03.27 |
Comments