안녕하세요, 이번 포스팅에서는 Feature Selection에 대해서 배워보도록 하겠습니다.
Feature Selection은 기계학습에서 굉장히 중요한 작업입니다.
데이터가 굉장히 많고, 다양하게 존재한다면, Feature selection을 솔직히 말해서 그다지 필요하지는 않습니다.
하지만, 현실 세계에서는 데이터가 이상적이지 않기 때문에, 필요성이 급증하였습니다.
output을 예측하는데에 상관이 없는 변수들이 존재하면, 우선 computational cost가 늘어나고, overfitting을 초래할 수 있습니다.
overfitting의 예를 들자면, 의료 진단 도메인에서, 질병의 유무에 대해서 예측을 할 때, 환자 ID가 결과에 큰 영향을 미친다는 결론이 나올 수 있습니다. 하지만 사실 상, 말이 안되는 결과지요. 즉, 필요 없는 변수로 인해 결과가 좌지우지 될 수 있다는 것입니다.
Feature Selection의 장점에 대해서 말하자면, 학습 시간을 줄일 수 있고, 모델의 분산을 줄임으로써, 보다 robust하게 학습됩니다. 그리고, 모델이 간소화가 되면 결과가 더 해석하기 쉽습니다.
Feature Selection의 주된 목적은 독립 변수중에서, 중복되거나 종속변수 (Y)와 관련이 없는 변수들을 제거하여, Y를 가장 잘 예측하는 변수들의 조합을 찾아내는 것이기 때문에, 최적화 문제로도 정의할 수 있습니다.
Feature Selection은 크게 3가지 방법으로 기계학습에 적용 될 수 있습니다.
1. Wrapper method
Wrapper method는 굉장히 단순한 방법입니다. 우선 Feature의 조합을 정하고, 기계 학습을 돌리고, 성능을 평가합니다.
이를 조합을 바꿔가면서, 계속 반복합니다. 그렇게 해서 가장 성능이 좋은 조합을 찾아내는 것입니다.
Wrapper method은 굉장히 많은 시간 비용이 필요하므로, 별로 추천하는 방법이 아닙니다. 그리고, 훈련 데이터셋에 너무 overfitting될 위험이 있습니다.
2. Filter Method
Filter Method는 전처리 과정에서 미리 Feature selection을 통계적 방법으로 실행하고, 모델을 적합하는 방법입니다.
가장 많이 사용되는 통계적 방법으로는 종속변수와 독립변수 간의 피어슨 상관계수를 이용하는 것입니다.
이 방법은, 앞선 Wrapper method에 비해서 엄청난 시간 단축을 얻을 수 있습니다.
3. Embedded method
Embedded method는 모델 자체에 Feature selection 기능이 추가되어 있는 경우입니다.
예를 들어서, Lasso Regression, Ridge Regression, Decision Tree 등의 알고리즘은 모델 알고리즘 자체에서 Feature Selection이 수행됩니다.
3가지 방법중에서 가장 많이 사용되는 방법은 Filter method입니다.
'데이터 다루기 > 머신러닝 이론' 카테고리의 다른 글
[머신러닝] Bayesian Learning 기초 (0) | 2019.10.19 |
---|---|
[머신러닝] Minimum-redundancy-maximum-relevance (mRMR) (1) | 2019.07.03 |
[머신러닝] 랜덤 포레스트 (Random Forest) (0) | 2019.07.03 |
[머신러닝] Ensemble Learning (4) Stacking (0) | 2019.07.02 |
[머신러닝] Ensemble Learning (3) Boosting (AdaBoost) (0) | 2019.07.02 |