Feature Selection이란
머신러닝 모델에서 가장 중요한 변수를 선택하는 과정이다.
이는 모델의 성능을 향상시키고, 과적합을 방지하며, 계산 비용을 줄일 수 있는 중요한 단계다.
raw data의 모든 피처를 사용하면 computing power나 memory 측면에서
매우 비효율적이기에 일부 필요한 피처만 선택하는 아이디어다.
1. Filter Method : 관련성을 찾는 방법
이 방법은 피쳐들을 독립적으로 평가하여 어떤 피쳐가 유용한지 판단하는 것이다.
각 피쳐들의 특징을 통계적인 기준으로 평가한다.
간단하고 계산 속도가 빨라서 Wrapper method를 사용하기 전 전처리 하는 데 사용할 수 있다.
1) 상관관계 :
피쳐 간의 상관관계를 파악하여 유용한 피처를 선택하는 방법이다. 일반적으로 종속변수와의 상관관계가 높은
피처는 유용하다고 판단한다. 일정한 임계값을 설정하여 임계값을 넘는 피처를 선택할 수 있다. 히트맵 활용
2) 분산 :
피쳐의 분산을 계산하여 분산이 낮은 피쳐를 제거하는 방법이다. 분산이 낮은 피쳐는
데이터에 큰 변화를 주지 않기 때문에 유용하지 않다고 판단한다.
3) 카이제곱 검정 :
카이제곱 검정은 범주형 변수 간의 독립성을 검정하는 방법으로, 피쳐가 종속변수와
독립적이지 않을 때 유용한 피쳐로 판단한다
4) fisher score
2. Wrapper Method : 유용성을 측정하는 방법
예측 정확도 측면에서 가장 좋은 성능을 보이는 피쳐 집합을 뽑아내는 방법이다.
여러 번의 사이클을 돌려야 하기 때문에 시간과 비용이 비약적으로 커진다.
사전에 완성도가 높은 알고리즘과 가장 적합한 파라미터를 갖춰야지 가장 훌륭한 피쳐 집합을 찾아낼 수 있다.
1) Forward Selection :
초기에는 빈 피쳐 집합으로 시작하고, 각 단계에서 가장 유용한 피쳐를 선택하여 피쳐 집합에 추가하는 방법이다.
모델을 학습하고 성능을 평가한 후, 가장 성능이 향상되는 피쳐를 선택하여 피쳐 집합에 추가한다.
이 과정을 반복하여 성능이 최대화되는 피쳐 집합을 선택한다.
2) Backward Elimination :
초기에는 모든 피쳐를 포함하여 전체 피쳐 집합으로 시작하고, 각 단계에서 가장 덜 유용한 피쳐를 제거하는 방법이다.
모델을 학습하고 성능을 평가한 후, 가장 성능에 미치는 영향이 적은 피쳐를 제거한다.
3) Stepwise Selection :
Forward Selection과 Backward Elimination을 함께 사용하는 방식이다.
모든 피쳐를 가지고 시작해서 불필요한 피쳐를 제거하고 중요한 변수를 추가하거나, 빈 피쳐 집합으로 시작하여 하나씩
추가하거나 삭제하는 방식이다.
EDA 과정에서 독립변수와 종속변수 간의 상관관계를 파악하여 유의미한 경향을 보이는 피쳐들의 집합을 만들고
Wrapper method의 Forward Selection이나 Backward Elimination를 사용하면 될 것 같다.
추가적으로 트리 기반 알고리즘을 사용할 경우에는 피쳐 임포턴스를 찍어가며 피쳐 셀렉션을 진행하면 도움이 될 것 같다.
하지만 피쳐 임포턴스에 대한 절대적인 신뢰는 위험하다고 하니 내일은 피쳐 임포턴스에 관해 추가적으로 공부를 해봐야게따
이 외에 다양한 방법들은 사이킷런 문서에 정리되어 있다.
https://scikit-learn.org/stable/modules/classes.html#module-sklearn.feature_selection
주의
- 훈련할 데이터에서 피처를 고른다면, 훈련 데이터셋에 과적합이 발생할 수 있다.
따라서 훈련셋, 테스트셋을 제외한 데이터에서 선택하는 것이 중요하다. - 모든 데이터에서 피쳐 셀렉션을 진행하면, 교차 검증에서 똑같이 선택된 피쳐를 사용하게 되므로
결과가 편향될 수 있다.
https://subinium.github.io/feature-selection/
'데이터 분석 > MLDL' 카테고리의 다른 글
K-Means(K-평균) 알고리즘 (3) | 2024.02.28 |
---|---|
배깅과 부스팅 (0) | 2024.02.20 |
[머신러닝 기초] 분류 모델 평가 지표 등등 (1) | 2024.02.08 |
선형회귀 연습 (0) | 2024.01.30 |
로지스틱 회귀 간단 실습 (0) | 2024.01.30 |