Feature (Attribute) Selection


어떤 feature를 뽑아야 좋은 model을 생성 할 수 있을까?

해당 질문은 매우 어려운 문제이다.



해당 분야에 대한 깊은 지식이 없는 사람은 feature를 선택하기가 쉽지 않다.

이것을 자동으로 결정해 준다면 매우 좋을것이다. 이러한것을 목표로 하는 것이 feature selection 이다.



Feature selection이란 결국 가장 관련있는 feature들의 subset을 골라 내는 작업을 말한다.

이것은 Dimensionality reduction과 유사해 보일 수 있지만 그렇지 않다.



Feature Selection을 통해서 해결 되는 문제점들


관련 없는 데이터 제거

중복성 제거

정확도에 높은 모델에 기여되는 feature들이 무엇인지를 알아냄

심지어 어떤 feature들은 참여 됨으로써 정확도를 떨어뜨림 이런것들을 찾아냄


feature들을 최대한 적게 써서 model을 만드는 것이 좋다.

왜냐하면, 성능도 좋고 복잡하지 않으므로 이해하기도 쉽다. 그리고 설명도 쉽게 된다.



Feature Selection Algorithms

일반적으로 feature 선택 알고리즘은 세가지로 구분 된다.


filter method

wrapper method

embedded method


- Filter Method

각각의 feature들에 통계적인 점수를 부여하는 방법이다.

그리고 각각의 feature들은 score에 의해서 rank매겨 진다.


Example of some filter methods include the Chi squared test, information gain and correlation coefficient scores.



- Wrapper Method

search problem으로써 feature들의 집합을 선택한다.

An example if a wrapper method is the recursive feature elimination algorithm.




- Embedded Method


어떻 feature가 가장 크게 기여하는지를 찾아내는 방법이다.

Examples of regularization algorithms are the LASSO, Elastic Net and Ridge Regression.




Feature Selection Tutorials and Recipes

We have seen a number of examples of features selection before on this blog.


Weka: For a tutorial showing how to perform feature selection using Weka see “Feature Selection to Improve Accuracy and Decrease Training Time“.

Scikit-Learn: For a recipe of Recursive Feature Elimination in Python using scikit-learn, see “Feature Selection in Python with Scikit-Learn“.

R: For a recipe of Recursive Feature Elimination using the Caret R package, see Feature Selection with the Caret R Package









Single Attribute Evaluator: infoGainAttributeEval

Evaluate attribute based on information 


'AI > Theory' 카테고리의 다른 글

Fast Convolution  (3) 2020.02.13
Loss functions  (0) 2018.08.09
Ensemble Method  (0) 2015.09.15
Active Learning  (0) 2015.08.19
기계학습을 구현하기 위해서 어떤 언어가 좋은가?  (0) 2015.07.11

+ Recent posts