변수 선택의 개념

모델 성능 향상을 위해, 전체 변수 중에서 중요한 변수만 선택하는 과정입니다. 불필요한 변수는 제거하고, 예측에 의미 있는 변수만 남김으로써 과적합 방지, 계산 효율성 증가, 해석력 향상 등의 효과를 얻을 수 있습니다.

변수 선택 기법

1. Filter Method (사전 선택 방식)

통계적 특성 또는 데이터 간의 관계성을 기준으로 예측(학습)에 사용할 변수를 선택하는 방식

통계적 특성 또는 데이터 간의 관계를 기반으로 유용한 변수를 선별하는 방식입니다. 여러 기준을 사용해 독립 변수와 종속 변수 간의 관계를 평가하고, 특정 임계값을 넘어선 관계성을 가진 독립변수만을 선택하게 됩니다.

명확한 기준이 있어 설명하기 좋고, 빠르고, 간단하다는 장점이 있지만, 이 방식은 모델 학습과는 독립적이므로 이렇게 선택된 변수들이 실제 모델에서 또한 최적 변수일 것이라는 보장이 없다는 단점이 있습니다.

즉, Filter Method는 모델링에 앞서 데이터에 대한 영향도가 통계적/상관적으로 명확하게 미미한 변수를 탐색하고 이러한 불필요 변수를 제거하는 단계로 사용되는 것이 좋습니다.

Filter Method 의 종류

기법 설명 예시
통계 검정
Statistical Test
종속변수와 독립변수 간 통계적 유의성 검정을 통해 관계가 없는 변수 제거 t-test,
ANOVA,
카이제곱
상관 분석
Correlation Analysis
독립 변수와 종속 변수 간 선형 또는 비선형 상관관계를 평가해, 상관이 낮은 변수 제거 피어슨,
스피어만
cramer-v,
point-biserial 등
정보 이론 기반 분석
Information-based
독립 변수와 종속 변수 간의 정보 이득(상호정보량) 을 평가해 정보량이 낮은 변수 제거 상호정보량
(Mutual Information)
분산 기반
Low Variance Filter
분산이 거의 없는(=데이터 변동성이 적은) 변수는 정보력이 낮으므로 제거한다. VarianceThreshold
연관 분석
Association Rule Analysis
범주형 변수 간 공동 발생 규칙을 기반으로 의미 있는 변수 조합을 도출 Apriori
FP-Growth

Filter Method 의 특징

특징 설명
변수(데이터) 자체를 분석 - 변수 자체를 분석하는 방식이다.
- 변수의 통계적 특성 또는 변수 간 관계성을 기반으로 한다.
모델과는 독립적 - 변수(데이터) 자체만으로 평가하며
- 데이터와 모델간의 관계 또는 모델의 알고리즘과는 무관.
빠른 계산 속도 - 모델 학습이 필요 없으므로 빠르다.
대규모 변수 처리에 유리 - 일률적으로 한 번에 처리할 수 있으며
- 빠른 계산 속도 덕분에 대규모 변수 처리에 유리하다.
단변량 분석 - 대부분 단변량 기준의 분석
- 다변량 간 상호작용은 분석이 어려움

2. Wrapper Method (모델 기반 탐색)

후보 변수들의 하위 집합들을 모델에 반복적으로 학습시킨 뒤, 예측 성능 결과를 비교하여 예측(학습)에 사용할 변수를 선택하는 방법

변수들을 교체해가면서 머신러닝 모델을 반복적으로 학습하면서, 모델의 성능이 좋아지는 데 기여하는 변수 조합(=하위 집합)을 찾는 방식입니다. 실제 성능에 객관적인 영향을 미치는 변수를 탐색하는 방식입니다.

즉, 예측 모델 자체를 “블랙박스”로 활용해, 어떤 변수 조합이 좋은지를 실험적으로 판단하는 것입니다. 따라서 래퍼 방식은 학습 기법과 무관하게 입력 변수와 예측값만을 보고 변수를 선택하게 됩니다.

모델 성능에 직접적인 관계가 있는 정확한 변수 탐색 방법이라는 장점이 있으나, 변수를 하나 하나 교체해가면서 테스트를 해야 하기 때문에 계산량이 많고 시간이 오래 걸린다는 단점이 있습니다.

또한

Wrapper Method 의 종류

기법 설명
순차적 특징 선택 - Sequential Feature Selection (SFS)
- 순차적으로 변수를 추가하거나 빼면서 성능을 평가하는 방식
- 전진 선택법과 후진 제거법이 있다.
전진 선택법
- Forward Selection (SFS 중 하나의 방법)
- 변수를 하나씩 추가하면서 모델 성능을 평가하는 방법
- 처음에는 변수가 없다가 > 긍정적인 영향을 주는 변수를 추가
후진 제거법
- Backward Elimination (SFS 중 하나의 방법)
- 모든 변수를 추가한 뒤, 기여도가 낮은 변수부터 하나씩 제거
- 보통 p-value(유의 확률) 기반으로 판단
단계별 선택 - Forward Selection과 Backward Elimination을 결합한 방식
- 모든 변수를 가지고 시작해 도움이 되지 않는 변수를 제거하거나
- 모델에서 빠진 변 수 중 중요도가 높은 변수를 추가하는 방법
- 이와 같은 변수 추가와 삭제를 반복한다.

Wrapper Method 의 특징

특징 설명
모델을 이용
(wrapping)
- 모델을 반복적으로 학습시켜 변수 조합의 성능을 직접 측정
반복적 테스트 - 변수 조합을 변경해가면서 반복적으로 테스트 수행
변수 간 상호작용 - 변수 간 상호작용을 자연스럽게 고려할 수 있음
범용성 - 어떤 모델에도 적용할 수 있음
계산량 - 계산량이 많고 시간이 오래 걸린다는 단점
모델 성능 연관 - 모델 성능에 직접적인 관계가 있는 변수 탐색 방법

3. Embedded Method (모델 자체에서 변수 선택)

모델 학습 과정 안에서 각 변수에 대해 평가되는 중요도를 이용한 변수 선택 방법

변수 선택 기법 중 하나로, 모델 학습 과정 안에서(feature selection is embedded) 모델 자체가 변수에 대한 중요도를 평가하고, 중요도가 낮은 변수를 제거하여 최적 변수를 결정하는 방식입니다.

모델 자체에서 평가를 진행하므로 Wrapper Method에 비해 개발자가 수작업으로 처리할 일이 적으나, 각 모델에서 자체 평가를 하는 만큼 변수 선택의 기준이 모델에 종속적이므로 다른 모델에 적용이 힘들다는 단점이 있습니다. 더불어 해당 변수가 왜 선택되었는지에 대한 해석이 어려울 수도 있습니다.

Embedded Method 의 종류

기법 설명 적용 모델
회귀 계수 기반 - 회귀 모델 학습 중 계수(coefficient)의 크기 또는 정규화 효과를 이용해 변수 선택
- Lasso, Ridge 방식이 있으며, 둘을 섞은 Elastic Net 방식이 있다.
선형 모델 계열
선형 회귀
로지스틱 회귀 등
Lasso
(L1 정규화)
- 가중치(w)에 L1 패널티를 줘서 중요하지 않은 특성의 가중치를 0으로 만듦
- 가중치가 0인 특성은 자동으로 제거됨
선형 회귀
로지스틱 회귀
Ridge
(L2 정규화)
- L2는 가중치를 0에 가깝게 만들 뿐, 완전히 제거하지는 않음
- 따라서 Ridge는 특성 선택이라기보다는 가중치 조정 용도임
선형 회귀
로지스틱 회귀
Elastic Net - L1 + L2를 섞은 정규화 기법
- Lasso의 특성 제거 능력 + Ridge의 안정성을 동시에 반영
선형 회귀
로지스틱 회귀
트리 기반 - 학습 중에 정보 이득(Gini, Entropy, Gain 등) 기준으로 분할할 특성을 선택함
- 이때 사용된 빈도나 정보 이득 총합을 통해 내부적으로 feature importance가 계산됨
- 중요도가 낮은 변수는 자연스럽게 모델이 무시하게 됨
결정 트리
랜덤 포레스트
XGBoost
LightGBM 등

Embedded Method 의 특징

특징 설명
통합 수행 - 변수 선택과 모델 학습을 동시에 수행한다.
계산 효율성 - 모델을 한 번만 학습해도 되므로 Wrapper보다 효율적이다.
예측 성능 - Filter 보다 예측 성능이 우수할 수 있음
모델 종속성 - 특정 학습 알고리즘에 맞춰 설계된 방식이다.
- 따라서 다른 모델에는 적용이 불가능하다.

Hybrid Method

Filter Method, Wrapper Method, Embedded Method 중 여러 개의 방식을 혼합하여 변수를 선택하는 방식.

하나의 방식만 사용할 경우 발생할 수 있는 단점(예: Filter의 낮은 예측 성능, Wrapper의 높은 계산 비용 등)을 상호 보완합니다.

예를 들어, 먼저 Filter 방식으로 불필요한 변수들을 빠르게 제거한 뒤, 남은 변수들을 Wrapper나 Embedded 방식으로 정밀하게 평가하는 방식이나, 모델을 반복적으로 학습하면서 모델 학습시 발생하는 모델 자체의 변수 중요도를 활용해 변수를 선택하는 방식이 있습니다.

Hybrid Method 의 종류

기법 설명
RFE - Recursive Feature Elimination
- 모델을 여러 번 학습하면서 중요도가 낮은 변수를 제거해간다.
- 반복적으로 학습한다는 점에서 Wrapper Method에 해당하고
- 변수 중요도를 기준으로 평가한다는 점에서 Embedded Method 에 해당한다.
- RFE 는 사람이 최종적으로 남을 변수의 개수를 지정한다.
RFECV - Recursive Feature Elimination Cross Validation
- 기본적으로 RFE와 같은 방식이며
- RFECV는 다양한 교차 검증 분할 선택기를 적용해 성능을 기반으로 변수의 개수가 자동으로 선정된다는 점이 다르다.
Boruta - Random Forest 모델을 반복 학습하면서 변수 중요도 평가
- 원래 데이터에 어떠한 변수(shadow features)를 추가하고
- RF를 학습시켜 모든 변수의 중요도를 계산한다.
- 원래 데이터의 변수가 shadow feature 보다 유의미하게 크면 중요 변수로 간주
Filter + Wrapper - 먼저 상관분석을 하여 후보군을 축소하고 -> Wrapper 방식으로 세밀하게 변수 선택

Hybrid Method 의 특징

특징 설명
효율성 - 각 방식의 장점을 취함으로써 속도와 정확성을 모두 얻을 수도 있음
복잡성 - 구조가 복잡할 수 있음
- 조합 방식에 따라 하이퍼파라미터 조정과 성능 비교가 어려울 수 있음

변수 선택 기법 요약 및 장단점

각 변수 선택 기법에 대한 요약과 장단점입니다. 실무에서 변수 선택시에는 이들 중 하나를 선택해서 변수선택을 하는 게 아니라, 세 기법을 필요성에 의해 조화롭게 사용하는 것이 중요합니다.

선택 기법 요약

항목 Filter Method
(사전 선택)
Wrapper Method
(모델 기반 탐색)
Embedded Method
(모델 자체 선택)
설명 통계적, 상관성 검증을 통해 불필요 변수를 제거 변수를 교체해가며 모델에 미치는 영향을 탐색 모델 자체에서 학습 시 불필요 변수를 탈락시킴
장점 - 설명하기 좋음
- 빠르고 간단
- 모델 성능과 직접적 관계 - 변수 선택이 자동
단점 - 모델과 무관 - 계산량이 많음
- 시간이 오래 걸림
- 모델에 종속적
- 해석 어려움
변수 평가 위치 모델 외부 모델 외부
(반복 학습 기반)
모델 내부
평가 시점 모델 학습 전 모델 반복 학습 중 모델 학습 중

실무에서의 변수 선택 기법 적용

실무에서는 아래와 같은 순서로 변수 선택 기법을 적용할 수 있습니다.

(1) Filter Method 로 영향도가 매우 낮거나 상관성이 매우 낮은 불필요 변수를 제거
(2) Wrapper Method 로 모델 성능을 높이는 변수 조합을 탐색
(3) Embeded Method 를 활용해 최적 변수 중요도를 평가

헷갈리지 말자, 변수 선택 기법과 변수 중요도

변수 선택 기법 Feature Selection

  • 모델의 성능을 최적화할 수 있는 변수를 선택하는 기법
  • 수동으로 할 수도 있고, 자동으로 할 수도 있다.
  • 또한, 모델을 이용할 수도 있고, 이용하지 않을 수도 있다.
  • 모델을 이용할 때에는 추론 결과를 이용할 수도, 변수 중요도를 이용할 수도 있다.
  • 또한, 변수 중요도를 활용할 수도 있고, 활용하지 않을 수도 있다.
  • 목적 : 모델 성능 향상, 과적합 방지를 위해 불필요 변수 제거
  • 방법 : Filter, Wrapper, Embedded

변수 중요도 Feature Importance

  • 변수가 모델의 예측에 얼마나 중요한지의 정도
  • 목적 : 모델이 예측할 때 각 변수가 얼마나 중요한 역할을 하는지 평가
  • 방법 : 학습된 모델에서 중요도 점수를 추출

Reference

An Introduction to Variable and Feature Selection- Isabelle Guyon, Andre Elisseeff
scikit-learn - Sequential Feature Selection
scikit-learn - feature selection - RFE
scikit-learn - feature selection - RFECV
https://process-mining.tistory.com/138
https://dyddl1993.tistory.com/18
https://jihwan98.github.io/posts/Feature-Importance/ https://syj9700.tistory.com/50

Comments