Feature Selection

백병현·2021년 9월 1일
0

모델의 성능을 높이기 위해 기존 특징 집합에서 유의미한 특징을 선택

Feature Selection을 통해 얻는 이점

  • 모델 복잡도를 감소시켜 해석에 용이
  • 학습 시간 축소
  • 차원의 저주 방지
  • Overfitting을 감소시켜, 일반화 성능을 높임

방법론

  • Wrapper method
  • Filter method
  • Embedded method

1. Wrapper Method(유용성을 측정한 방법)

Wrapper method는 예측 모델을 이용하여 특징의 Subset을 계속 테스트한다. 이 경우, 기존 데이터에서 테스트를 진행할 set을 따로 마련해야한다. 이 방법은 Computing Power가 비약적으로 큰 NP 문제이기 때문에 random hill-climbing과 같은 휴리스틱 방법론을 사용한다.

  • recursive feature elimination(RFE)
    : scikit-learn에서 Method 제공
    : SVM 알고리즘을 이용하여 재귀적으로 제거하는 방법
    : 유사한 방법으로 Backward elimination, Forward elimination 등
  • sequential feature selection(SFS)
    : mlxtend에서 Method 제공
    : Greedy Algorithm으로 빈 subset에서 feature을 하나씩 추가하는 방법
    : 최종적으로 원하는 feature만 남게 됨
  • genetic algorithm
  • Univaraite selection
  • Exhaustive
  • mRMR(Minimum Redundancy Maximum Relevance)
    : Feature의 중복성을 최소ㅗ하화여 Relevancy를 최대화하는 방법
    : https://medium.com/ai%C2%B3-theory-practice-business/three-effective-feature-selection-strategies-e1f86f331fb1

2. Filter Method(관련성을 찾는 방법)

Filter method는 통계적 측정 방법을 사용하여 feature들의 상관관계를 알아낸다. 하지만 feature간의 상관계수가 반드시 모델에 적합하다고 할 수 없고, 세트의 조정이 정확하지 않다. 대신, 계산 속도가 빠르고 feature간 상관관계를 알아내는데 적합하기 때문에 Wrapper method를 사용하기 전에 전처리하는데 이용될 수 있다.

  • information gain
  • chi-square test
  • fisher score
  • correlation coefficient
  • variance threshold

3. Embedded Method(유용성을 측정하지만 내장 metric을 사용하는 방법)

Embedded method는 모델의 정확도에 기여하는 feature를 학습한다. 좀 더 적은 계수를 가지는 회귀식을 찾는 방향으로 제약조건을 주어 이를 제어한다.

  • LASSO: L1-norm을 통해 제약을 주는 방법
  • Ridge: L2-norm을 통해 제약을 주는 방법
  • Elastic Net: 위 둘을 선형결합한 방법
  • SelectFromModel
    : Decision tree 기반 알고리즘에서 feature를 뽑아오는 방법
    : scikit-learn에서 method 제공

참고할 자료


출처: https://subinium.github.io/feature-selection/

profile
열정있는 AI 개발자

0개의 댓글