Feature Selection
Feature Spaces
Feature Space 는 N개의 Featrues에 의해 정의된 N diemnsional space이다. (label은 포함하지 않음)
예를들어 방의개수, 넓이, 지역의 3개 Feature를 가지고 집값 Y를 예측하는 문제에서 모델 f 는 3D feature space에서 활동을한다.
Feature coverage는 매우 중요하다. Model을 학습하거나 평가할 때 제공되는 data 는 실제 Serving되는 data를 대표하고 cover할 수 있어야한다. 즉 같은 numerical range,classes 등을 가져야 한다.
앞서 나왔던 여러가지 요소에 의해 일어나는 Concept,data drift 등의 문제가 발생할 수 있기 때문에, 항상 Monitoring을 통해 같은 space를 커버하는지 관리하는것이 성공의 핵심 포인트다.
Feature Selection
Feature selection은 가지고 있는 Data의 여러 Feature들 중에서 필요한 것을 선택하는 과정이다.
어쩔때는 모두 필요할 수도있고, 어쩔때는 모두 필요 없을수도 있다.
중요한 점은 Feature가 예측 하려고 하는 목표와의 연관성을 잘 나타낼 수 있어야 한다는것이다.
Feature의 개수는 곧 Feature space의 차원으로 이어지고, 차원이 높을수록 모델의 복잡도가 올라가기 때문에 최소한의 Feature들로 효율적을로 구성하는것이 좋다.
적절한 Feature selection을 수행하여 Data의 전체 크기를 줄이고, training / inference cost를 최소화할 수 있다.
Feature selection method는 크게 Unsupervised, Supervised의 두가지로 나뉜다.
Unsupervised feature selection은 feature와 label의 관계를 고려하지 않는다. 보통 중복된 feature나 연관성이 높은 feature를 제거하는 등의 작업이다.
Supervised feature selection은 label과의 관계를 고려한다. 여러개의 feature중 label의 결과 도출에 가장 큰 영향을 미치는 feature 들을 선택하는 등의 작업을 한다.
Supervised feature selection에는 Filter Methods, Wrapper methods, Embedded methods 등이 존재한다.
이렇게 선정한 Feature들에 대해서 성능 평가는 baseline value에서 부터 시작한다. 그리고 Random Forest classifier를 이용해 feature들을 선택해 가면서 Acc, AUROC, Precision, Recall, F1score 등을 사용해 성능을 평가한다.
Filter Methods
Filter method는 주로 상관관계(Correlation)을 사용한다.
Correlated feature들은 대부분 redundant하다. 따라서 더 나은 성능을 위해 중복되는 것들 중 하나를 제외하고는 없애는것이 좋다.
인기있는 filter method중 Pearson Correlation은 Feature들 사이 그리고 Feature와 Label사이의 상관관계를 고려한다. 그 밖에 univariate feature seletion 등이 존재한다.
위와 같은 [-1,1] 의값을 가지는 Correlation matrix로 나타낸다. 숫자가 높을수록 더 강한 상관관계를 뜻한다.
이런 상관관계 Matrix에서 feature가 서로 연관되있다면 안좋은 경우일 것이고 feature와 target(label)이 연관되어있다면 좋은 경우일 것이다.
(모든 possible feature subset을 고려하기 때문에 덜 효율적이다.)
Wrapper Methods
Wrapper method는 Model을 직접 이용해서 feature의 효율성을 측정하고 그 feedback을 바탕으로 subset을 만드는 반복적인 과정을 거친다.
각 feedback loop에서 subset을 정하는 방법으로는 대표적으로 Forward Selection, Backward Selection, Recursive Feature Elimination이 있다.
Foward selection은 반복적이고 greedy한 방법이다.
- 처음에는 1개의 feature로 시작한다.,
- 각 반복마다 1개의 feature를 더 넣어서 performance를 측정한다.
- 최고의 성능을 보여준 feature 1개를 넣는다.
- 해당 과정을 성능에 더이상 발전이 없을때까지 반복한다.
Backward selection
Foward selection과는 반대로 모든 Feature에서 시작해서 제일 덜 중요한 feature를 1개씩 제거해나간다.
Recursive Feature Elimination
- 우선 feature의 중요도를 측정할 수 있는 모델을 선택한다.(ex : random forest)
- 그 후 원하는 feature의 개수를 선정한다.
- Model을 fit(학습)시킨다.
- feature들을 중요도에 따라 랭킹을 매긴다.
- 덜 중요한 feature들을 버린다.
- 앞서 정한 원하는 feature의 개수만 남을때까지 위의 과정을 반복한다.
(greedy, 반복적인 과정때문에 좀 느릴수도)
Embedded Methods
L1, L2 regularization은 기본적으로 embedded method에 들어간다.
그리고 Feature importance라는 방법이 있다.
- Data의 각 feature에 score를 부여한다.
- feature importance가 낮아 점수가 낮아진 feature들을 버린다.
SKLearn의 RandomForestClassifier, featureimportances , SelectFromModel 과 같은 함수,parameter를 이용해 구현할 수 있다.
연관글
Feature engineering techniques
TFX: