BraveTiger

CH5. 머신러닝_Feature Selection/Feature importance 본문

취업 준비/AIVLE SCHOOL

CH5. 머신러닝_Feature Selection/Feature importance

BraveTiger 2023. 3. 27. 23:46

Feature Selection

모델을 구성하는 주요 피처들을 선택

  • 불필요한 다수의 피처들로 인해 모델 성능을 떨어뜨릴 가능성(OverFitting) 제거
  • 설명 가능한 모델이 될 수 있도록 피처들을 선별

Feature Selection의 유형

  • feature의 분포
  • feature간의 상관
  • 결정값과 독립성
  • feature importance 기반

Sklearn Feature Selection 지원

  1. 모델 기반
  • RFE(Recursive Feature Elimination)
    • 모델 최초 학습 후 Feature 중요도 산정
    • feature 중요도가 낮은 속성들을 차례로 제거해 나가면서 반복적으로 학습/평가를 수행하여 최적의 feature 추출
    • 수행시간이 오래 걸리고, 중요도가 낮은 feature를 제거하는 매커니즘이 정확한 feature selection을 찾는 목표에 부합하지 않을 수 있음
  • SelectFromModel
    • 모델 최초 학습 후 선정된 feature 중요도에 따라 평균/중앙값의 특정 비율 이상인 feature들을 선택

왜 Feature importance는 절대적인 Feature Selection의 기준이 될 수 없는가?

  1. feature importance는 최적 tree 구조를 만들기 위해 feature들의 impurity(불순도)가 중요 기준임 즉, 정보 이득 관점
    • 결정값과 관련이 없어도 feature importance가 높아질 수 있다.
  2. feature importance는 학습 데이터를 기반으로 생성되므로 테스트 데이터에서 달라질 수 있다.
  3. feature importance는 수치형의 높은 cardinality feature에 편향되어 있다.

즉 학습데이터에 대한 영향도 있을 뿐더러 tree 기반 모델의 feature importance는 최적의 트리 분할에 대한 기준이다.

 

Permutation Importance

특정 feature 값을 완전히 변조했을 때 모델 성능이 얼마나 저하되는지를 기준으로 해당 피처의 중요도를 산정

  • 학습 데이터를 제거하거나 변조하면 다시 재 학습을 수행해야 하므로 시간이 오래 걸림
  • 일반적으로 테스트 데이터(검증 데이터)에 특정 피처들을 반복적으로 변조한 뒤 해당 feature의 중요도를 평균적으로 산정

Permuatation Importance 프로세스

  1. 모델 학습(train data) 이 때의 성능이 기준 평가 성능
  2. 특정 feaeture의 데이터를 k번 random shuffling(validation or test)함.
  3. shuffle 했을 때 모델의 성능을 측정
  4. k번 iteration 수행
  5. 기준 평가 성능에서 모델 성능이 얼마나 저하되었는지 평가

프로세스 3줄 요약

  1. 기준 평가 성능을 0.9라고 가정한다.
  2. 총 10번 반복했을 때 성능이 [0.7, 0.6, 0.8, 0.5, 0.7, 0.7, 0.8, 0.8, 0.4, 0.7]이 나왔다고 가정했을 때 이 값들의 평균은 0.67 이다.
  3. 0.9 - 0.67 = 0.23 즉 해당 feature는 0.23만큼의 feautre importance를 갖고 있다. 기준 평가 성능을 많이 떨어뜨리는 feature라면 중요도가 높지 않은 것.

(기준 평가 성능이 감소한다면 중요 feature 그대로이거나 좋아지면 중요하지 않은 feature)

Permutation Importance 의 장점

  1. 모델을 재학습 시킬 필요가 없다.
  • feature importance는 특정 feature를 제거하고 모델을 재학습 시켜야 함.
  • Permutation Importance는 특정 feature를 노이즈로 만드는 것.
  1. 각 Feature 의 중요도는 ‘partial importance’가 아니다.
  • 각 feature 중요도에는 Target뿐만 아니라 다른 feature와 교호작용도 포함된다.

Permutation Importance 의 단점

  1. RandomShuffling과정을 거치기 때문에 실행마다 다른 결과를 얻을 수 있다.
  2. 적절한 iteration이 필요(연산량과 시간 증가)
  3. 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

 

Comments