Machine Learning을 활용한 Feature Selection
주요 Machine Learning 관련 기법
- Decision Tree-based Feature Importance
- Random Forest Importance
- Gradient Boosted Trees Importance
- Recursive Feature Elimination with Cross-Validation
Python Library
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.ensemble import GradientBoostingClassifier
1. Decision Tree based
- Decision Tree를 구성할 때, 어떤 변수가 node 분할에 대한 Feature Importance(특징 중요도)를 평가
- 구체적인 방법
- Decision Tree Learning
- 각 node에서 feature 분할로 인한 불순도 감소를 합산
ex) 타이타닉 데이터셋에서 생존 예측 모델을 학습시킬 때, '성별'이나 '객실 등급'과 같은 변수가 높은 중요도를 갖을 수 있다.
2. Random Forest based
- Random Forest 모델 내의 여러 Decision Tree 툴의 feature importance를 평균내어 전체 feature importnace를 평가하는 방법
- 구체적인 방법
- Random Forest learning
- 각 Tree의 importance를 합산하여 평균 계산
ex) 주택 가격 예측 모델에서 '면적', '위치', '방의 수' 등이 중요한 특성으로 평가될 수 있다.
3. Gradient Boosted based
- GBT 알고리즘에서 각 Tree의 Feature Importance를 합산하여 전체 Importance를 계산하는 방법
- 구체적인 방법
- GBT learning
- 각 Tree에서 Feature Importance 합산
ex) 고객 이탈 예측 모델에서 '최근 구매일', '총 구매 금액', '사용 플랫폼'등이 중요한 특성으로 간주 될 수 있음.
4. Feature Selection Using Regularization (L1/L2)
- 정규화 (L1/L2)를 포함한 regression. L1 정규화는 feature coefficient(특징 계수)를 0으로도 만들 수 있음
- 구체적인 방법
- L1/L2 Regularization을 포함한 regression model을 학습
- Regularication coefficient가 각 feature에 적용됨
ex) multivariate regression 문제에서 L1 regularization을 사용하면 일부 변수의 계수가 0이 되어 해당 변수들을 제외하고 모델을 학습할 수 있다.
5. Recursive Feature Elimination with Cross-Validation - RFE
- 모델의 Importance를 기반으로 특성을 반복적으로 제거하는 동시에, 교차 검증을 사용하여 모델의 성능을 평가하는 방법.
- 구체적인 방법
- 모든 Feature로 모델을 학습
- Feature Importance 순서대로 특성을 제거
- Cross Validation을 사용하여 모델 성능을 평가
- 최적의 Feature수를 선정
ex) 스팸 메일 분류에서 RFE를 사용하면, 수백 개의 단어 특성 중에서 스팸 예측에 가장 중요한 단어들만 선택하여 모델을 학습시킬 수 있다.