콘텐츠로 이동

특성 선택 (Feature Selection)

핵심 요약: 100개 특성 중 진짜 중요한 10개만 골라 모델을 더 좋게 만든다. 불필요한 특성은 노이즈일 뿐 — 줄이면 오히려 성능이 오른다.

  • 특성 선택(Feature Selection): 전체 특성 중 모델에 가장 유용한 부분 집합만 골라내는 과정. 특성 공학이 “만드는 것”이라면, 특성 선택은 “골라내는 것”.
  • 필터 방법(Filter): 상관계수 등 통계적 기준으로 빠르게 특성을 걸러내는 방법. 모델과 독립적이라 속도가 빠르다.
  • 임베디드 방법(Embedded): Lasso, 트리 모델처럼 학습 과정에서 자동으로 중요한 특성을 선택하는 방법.
  • SHAP: 게임 이론의 Shapley value에 기반한 특성 중요도 측정 방법. 각 특성이 예측에 얼마나 기여했는지를 이론적으로 가장 정확하게 계산한다.

상황: 고객 이탈 예측, 원래 특성 50개.

단계특성 수정확도학습 시간
전체 사용50개84%120초
상관분석 필터 (r < 0.05 제거)30개86%75초
Lasso(L1) 임베디드12개89%30초
SHAP 기반 최종 선별8개91%18초

특성을 50개에서 8개로 줄였더니, 정확도는 84%→91%로 올랐고, 학습 시간은 1/6로 줄었다. 불필요한 특성이 노이즈로 작용했기 때문이다.

특성 선택(Feature Selection)은 모델 학습에 가장 유용한 특성의 부분 집합을 선별하는 과정이다. 불필요한 특성은 노이즈를 추가하고, 차원의 저주(curse of dimensionality)를 유발하며, 과적합을 촉진하고, 학습 시간을 늘린다. 특성 선택은 필터(Filter), 래퍼(Wrapper), 임베디드(Embedded) 세 가지 접근법으로 나뉜다.


특성 선택의 역사는 Ronald Fisher가 1936년에 발표한 판별 분석(Discriminant Analysis)까지 거슬러 올라간다. Fisher는 붓꽃(Iris) 데이터에서 4개의 측정값 중 어떤 것이 종(species)을 구분하는 데 가장 유용한지를 분석했으며, 이것이 사실상 최초의 체계적 특성 선택이었다.

이후 수십 년간 통계학에서 변수 선택(variable selection) 연구가 이어졌고, 1996년 Tibshirani가 Lasso(L1 정규화)를 발표하면서 모델 학습과 특성 선택을 동시에 수행하는 임베디드 방법의 시대가 열렸다. 2001년에는 Breiman의 Random Forest가 특성 중요도(feature importance)를 자연스럽게 제공하는 도구로 널리 사용되기 시작했다.

가장 최근의 도약은 2017년 Lundberg와 Lee가 발표한 SHAP(SHapley Additive exPlanations)이다. 게임 이론의 Shapley value를 ML 해석에 적용한 SHAP은 특성 중요도를 이론적으로 가장 견고하게 측정할 수 있는 방법을 제공하며, 특성 선택과 모델 해석 가능성(Explainability)을 동시에 달성하는 현대적 접근의 핵심이 되었다.


모델에 독립적으로, 통계적 관계만을 기반으로 특성을 평가한다.

기법적합한 데이터측정 대상
분산 임계값모든 데이터분산이 낮은 특성 제거
상관계수 (Pearson)수치형선형 관계 강도
Chi-Square Test범주형특성-타겟 독립성
Mutual Information모든 데이터비선형 관계 포함 정보량
ANOVA F-test수치-범주형클래스 간 평균 차이

장점: 빠르고, 모델에 독립적
단점: 특성 간 상호작용을 무시, 중복 특성 제거 어려움

모델 성능을 직접 평가하여 최적 특성 부분 집합을 탐색한다.

기법방향설명
Forward Selection추가빈 집합에서 시작, 최적 특성을 하나씩 추가
Backward Elimination제거전체에서 시작, 가장 불필요한 특성을 하나씩 제거
RFE (Recursive Feature Elimination)제거모델의 특성 중요도를 기반으로 재귀적 제거

장점: 모델 성능을 직접 최적화
단점: 매우 느림 (특성 수에 비례하는 모델 학습 횟수)

모델 학습 과정에서 특성 선택이 자동으로 이루어진다.

minwyXw22+λw1\min_w \|y - Xw\|_2^2 + \lambda \|w\|_1

L1 페널티가 일부 가중치를 정확히 0으로 만들어, 자동으로 특성을 선택한다.

  • Gini Importance (MDI): 분할 시 불순도 감소 기여도
  • 장점: 빠르고 직관적
  • 주의: 고카디널리티 특성에 편향

L1 + L2를 결합하여 그룹화된 특성도 선택할 수 있다.

minwyXw22+λ1w1+λ2w22\min_w \|y - Xw\|_2^2 + \lambda_1 \|w\|_1 + \lambda_2 \|w\|_2^2

4. 특성 중요도 점수 (Importance Scores)

섹션 제목: “4. 특성 중요도 점수 (Importance Scores)”
방법원리신뢰도주의점
Permutation Importance특성을 무작위 섞었을 때 성능 하락 정도높음상관된 특성 간 중요도 분산
SHAP Feature ImportanceShapley value 기반 기여도매우 높음계산 비용 높음
MDI (Mean Decrease Impurity)트리의 분할 불순도 감소중간고카디널리티 편향
Drop-Column Importance특성 제거 후 재학습 성능 비교높음매우 느림

Permutation Importance의 한계: 두 특성이 강하게 상관되어 있으면, 하나를 섞어도 다른 하나가 정보를 보존하여 중요도가 과소 평가될 수 있다.

SHAP (SHapley Additive exPlanations): 게임 이론의 Shapley value에 기반한 가장 이론적으로 견고한 방법이다. 지역적(local) 설명과 전역적(global) 중요도를 모두 제공한다.


특성 선택 워크플로우 다이어그램

특성FilterWrapperEmbedded
속도매우 빠름매우 느림중간
모델 의존성독립의존의존
상호작용 고려아니오부분적
과적합 위험낮음높음중간
구현 용이성쉬움복잡쉬움

상황추천 방법
특성 수십 개, 빠른 결과 필요Embedded (Lasso, Tree)
특성 수백~수천 개Filter → Embedded 순차
최고 성능 필요, 시간 충분Wrapper (RFE)
해석 가능성 중요SHAP + Permutation Importance
고카디널리티 범주형Mutual Information, Target Encoding
딥러닝보통 불필요 (모델이 자동 선택)

유전체학: 20,000개 유전자에서 50개로 줄여 암 진단 정확도를 높이다

섹션 제목: “유전체학: 20,000개 유전자에서 50개로 줄여 암 진단 정확도를 높이다”

유전체학(genomics) 분야에서 마이크로어레이(microarray) 데이터는 전형적인 “p >> n” 문제를 보인다 — 특성(유전자) 수가 20,000개 이상인 반면 샘플(환자) 수는 수십~수백 명에 불과하다. 한 연구팀이 유방암 진단 모델을 구축할 때 다음과 같은 결과를 얻었다:

  • 전체 20,000개 유전자 사용: 차원의 저주로 인해 교차 검증 정확도가 72%에 그쳤다. 모델이 노이즈에 과적합되었다
  • 분산 필터 + Mutual Information으로 500개 선별: 정확도가 85%로 상승했다
  • Lasso(L1) + Recursive Feature Elimination으로 50개 선별: 정확도가 93%에 도달했다. 50개 유전자는 기존 생물학 연구에서 암과 관련이 알려진 유전자들과 높은 일치율을 보였다

이 사례는 특성을 줄이는 것이 오히려 성능을 높일 수 있다는 직관에 반하는 현상을 잘 보여준다. 불필요한 특성은 노이즈와 차원의 저주를 유발하므로, 정보가 풍부한 소수의 특성만 남기는 것이 과적합을 방지하고 일반화 성능을 높이는 핵심 전략이다.


  1. 전체 데이터에서 특성 선택: 특성 선택도 데이터 누수의 원인이 된다. 학습 데이터에서만 선택하고, 동일한 특성 집합을 테스트에 적용해야 한다.

  2. 상관관계가 높은 특성을 무조건 제거: 높은 상관관계가 항상 중복을 의미하지는 않는다. 두 특성이 타겟에 대해 다른 정보를 제공할 수 있다.

  3. MDI (Gini Importance)만 의존: 고카디널리티 특성에 편향된다. Permutation Importance나 SHAP을 교차 검증해야 한다.

  4. 특성 선택이 항상 성능을 개선한다: 정보가 풍부한 특성을 제거하면 오히려 성능이 하락한다. 반드시 검증으로 확인해야 한다.

  5. 한 번에 최종 결정: 특성 선택은 반복적 과정이다. 모델을 바꾸면 최적 특성 집합도 달라질 수 있다.