모델의 성능을 높이기 위해 기존 특징 집합에서 유의미한 특징을 선택
Feature Selection을 통해 얻는 이점
- 모델 복잡도를 감소시켜 해석에 용이
- 학습 시간 축소
- 차원의 저주 방지
- Overfitting을 감소시켜, 일반화 성능을 높임
방법론
- Wrapper method
- Filter method
- Embedded method
1. Wrapper Method(유용성을 측정한 방법)
Wrapper method는 예측 모델을 이용하여 특징의 Subset을 계속 테스트한다. 이 경우, 기존 데이터에서 테스트를 진행할 set을 따로 마련해야한다. 이 방법은 Computing Power가 비약적으로 큰 NP 문제이기 때문에 random hill-climbing과 같은 휴리스틱 방법론을 사용한다.
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/