CertNote/ 출퇴근 학습 노트
로드맵
KOEN
CLF-C02 · FoundationalCloud Practitioner - Foundational
DVA-C02 · AssociateDeveloper - Associate
SAA-C03 · AssociateSolutions Architect - Associate
SOA-C02 · AssociateCloudOps Engineer - Associate
SAP-C02 · ProfessionalSolutions Architect - Professional
DOP-C02 · ProfessionalDevOps Engineer - Professional
SCS-C03 · SpecialtySecurity - Specialty
MLA-C01 · AssociateMachine Learning Engineer - Associate
AIF-C01 · FoundationalAI Practitioner - Foundational
DEA-C01 · AssociateData Engineer - Associate
MLS-C01 · SpecialtyMachine Learning - Specialty
  • Week 1
    • 1.ML 수명주기(ML Lifecycle): 비즈니스 문제 정의부터 A/B 테스트까지
    • 2.ML용 데이터 저장소: S3·EFS·FSx for Lustre·데이터 포맷
    • 3.데이터 수집: Kinesis·Glue·배치 vs 스트리밍
    • 4.데이터 레이블링: SageMaker Ground Truth·액티브 러닝(Active Learning)·레이블 품질
    • 5.1주차 종합 복습: ML 개요와 데이터 엔지니어링 1
  • Week 2
  • Week 3
  • Week 4
    • 1.차원 축소: PCA, t-SNE, 차원의 저주
    • 2.특성 선택(Feature Selection): 필터·래퍼·임베디드 방식·중요도·다중공선성
    • 3.데이터 시각화: 분포·상관관계·QuickSight·인사이트 도출
    • 4.클래스 불균형 처리: 오버샘플링·언더샘플링·SMOTE·클래스 가중치·평가
    • 5.4주차 종합 복습: 차원 축소·특성 선택·시각화·불균형
  • Week 5
  • Week 6
  • Week 7
  • Week 8
  • Week 9
  • Week 10
  • Week 11
  • Week 12
합격 후기

© CertNote · 주간랩스

  • 소개
  • 수정 기록
  • 문의
  • 이용약관
  • 개인정보처리방침
← MLS-C01/Week 4/Day 2

기준: MLS-C01 시험 가이드·오류 제보

MLS-C01· AssociateWeek 4 · Day 2읽기 약 12분
핵심 정리
  • 특성 선택은 원본 특성의 부분집합을 남기는 것이라 해석 가능성이 보존된다. PCA는 새 축을 만들어 의미를 잃는다.
  • 세 접근: 필터(빠름·모델 무관) / 래퍼(정확·매우 느림) / 임베디드(균형, Lasso·트리 중요도).
  • L1(Lasso)은 계수를 정확히 0으로 만들어 자동 선택 효과가 있다. L2(Ridge)는 줄이기만 한다.
  • 중요도는 불순도 기반(MDI)이 고카디널리티 편향을 갖는다. 순열 중요도·SHAP이 더 신뢰된다.
  • 다중공선성은 상관행렬(|r| > 0.8~0.9)·VIF(> 5 주의, > 10 심각)로 진단한다. 선형 모델에 치명적, 트리는 둔감하다.

Day 2 - 특성 선택(Feature Selection): 필터·래퍼·임베디드 방식·중요도·다중공선성

왜 특성 선택인가

Day 1의 차원 축소가 "새로운 합성 축을 만드는 것"이었다면, 특성 선택(feature selection)은 "쓸모 있는 기존 특성만 남기는 것"이다. 둘 다 차원을 줄이지만, 선택은 원본 특성의 해석 가능성을 보존한다.

  • 과적합 감소: 무관한 특성은 모델이 노이즈를 학습하게 만든다
  • 학습·추론 속도 향상
  • 해석 가능성 상승: 특성이 적을수록 모델 설명이 쉽다
  • 차원의 저주 완화

특성 선택과 PCA는 둘 다 차원을 줄이지만 철학이 다르다. PCA는 원본 특성 전체를 선형 결합해 새 축을 만들므로 결과의 물리적 의미가 사라진다. 선택은 원본 특성의 부분집합을 그대로 남기므로, "어떤 변수가 예측에 사용되었는가"를 설명해야 하는 규제 산업(금융, 의료)에서 선호된다.

세 가지 접근

접근작동 방식강점약점예시
필터(Filter)모델과 무관하게 통계 지표로 특성을 점수화빠르다, 모델 독립특성 간 상호작용을 무시상관계수, 카이제곱, 분산 임계값, 상호정보량
래퍼(Wrapper)특성 부분집합으로 모델을 반복 학습·평가상호작용을 포착, 정확매우 느림, 과적합 위험전진 선택, 후진 제거, RFE
임베디드(Embedded)모델 학습 과정에 선택이 내장효율과 정확도의 균형모델에 종속Lasso(L1), 트리 특성 중요도

어떤 접근을 고를까

상황고를 접근이유
특성이 수천 개, 1차 선별이 목적필터모델 학습 없이 점수화 → 가장 빠름
특성이 수십 개, 최고 성능이 목적래퍼(RFE)반복 학습 비용을 감당할 수 있는 규모
선형 모델에서 자동으로 특성을 줄이고 싶다임베디드(Lasso)학습과 선택을 한 번에
트리·부스팅을 이미 쓰고 있다임베디드(트리 중요도)학습 부산물로 중요도가 나온다
관계가 비선형이라 상관계수가 0에 가깝다필터(상호정보량)선형에 국한되지 않는 의존성을 측정

필터 방법

각 특성을 타깃과의 관계로 독립 평가한다. 모델 학습이 없어 가장 빠르다.

from sklearn.feature_selection import SelectKBest, f_classif, mutual_info_classif
 
# ANOVA F-검정으로 상위 k개 특성 선택
selector = SelectKBest(score_func=f_classif, k=20)
X_filtered = selector.fit_transform(X_train, y_train)
 
# 비선형 관계라면 상호정보량 사용
mi_selector = SelectKBest(score_func=mutual_info_classif, k=20)

필터에서 어떤 통계량을 쓸지는 특성 타입과 타깃 타입의 조합으로 결정된다.

특성 타입타깃 타입쓰는 지표비고
수치형분류ANOVA F-검정(f_classif)그룹 간 평균 차이를 본다
범주형분류카이제곱(chi2)입력이 음수가 아니어야 한다
수치형회귀피어슨 상관 / F-회귀(f_regression)선형 관계 전제
임의임의상호정보량(mutual_info_*)비선형 의존성도 잡는다
임의없음(비지도)분산 임계값(VarianceThreshold)상수·준상수 컬럼 제거용

래퍼 방법: RFE

RFE(Recursive Feature Elimination)는 모델을 학습하고 가장 약한 특성을 제거하는 과정을 반복한다.

from sklearn.feature_selection import RFE
from sklearn.ensemble import RandomForestClassifier
 
rfe = RFE(estimator=RandomForestClassifier(), n_features_to_select=15)
rfe.fit(X_train, y_train)
selected = X_train.columns[rfe.support_]

임베디드 방법: L1 정규화

from sklearn.linear_model import Lasso
 
lasso = Lasso(alpha=0.01)
lasso.fit(X_scaled, y_train)
# 계수가 0인 특성은 자동으로 제거된다
selected = X_train.columns[lasso.coef_ != 0]
      L1 (Lasso) 제약           L2 (Ridge) 제약
          ╱╲                        ╭───╮
        ╱    ╲                     │     │
        ╲    ╱                     │     │
          ╲╱                        ╰───╯
   손실 등고선이 꼭짓점에서       접점이 축 위에 오기 어렵다
   만나기 쉽다 → 계수 = 0        → 0에 가까워질 뿐, 0은 아님
        (희소 해)                    (축소만)

Lasso가 특성 선택 효과를 내는 이유는 L1 페널티의 기하 구조 때문이다. L1 제약 영역은 마름모 모양이라 손실 등고선이 꼭짓점(축 위, 즉 계수 = 0)에서 만날 가능성이 높다. L2(Ridge)는 원형이라 계수를 0 쪽으로 줄이기는 해도 정확히 0으로 만드는 일은 드물다. 그래서 "희소 해가 필요하면 L1"이다.

⚠️ 함정: Lasso는 계수 크기에 페널티를 걸므로 스케일링이 선행돼야 한다. 표준화하지 않으면 단위가 큰 변수의 계수가 작아 보여 먼저 0으로 밀려난다.

⚠️ 함정: 특성 선택도 데이터 의존 변환이다. 전체 데이터에서 상관·중요도를 계산해 특성을 고른 뒤 교차검증하면 검증셋 정보가 선택에 새어 든다. 선택은 파이프라인에 넣어 각 fold의 학습 부분에서만 수행해야 한다.

특성 중요도

트리 기반 모델은 학습 후 특성 중요도를 제공한다.

방법설명주의
불순도 기반(Gini/MDI)분할로 감소한 불순도의 합고카디널리티 특성에 편향
순열 중요도(Permutation)특성을 섞어 성능 하락 폭을 측정모델 독립적이나, 상관된 특성을 중복 계산
SHAP 값게임 이론 기반 기여도 분해계산 비용이 크지만 가장 일관적
import shap
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X_test)
shap.summary_plot(shap_values, X_test)   # 특성 기여도 시각화
목적고를 방법이유
학습 직후 빠르게 대략 파악불순도 기반(MDI)추가 계산 없이 즉시
편향 없이 전역 중요도 비교순열 중요도학습된 모델에 대해 실제 성능 하락으로 측정
개별 예측을 설명(왜 이 건이 사기인가)SHAP예측 하나하나에 대한 국소 설명 제공
모델 종류가 서로 다른데 비교해야 함순열 중요도 / SHAP모델 독립적으로 계산 가능

불순도 기반 중요도는 분할 후보가 많은 특성(연속형, 다범주형)을 과대평가하는 편향을 보인다. 순열 중요도는 학습된 모델에서 특성을 무작위로 섞어 성능 하락을 측정하므로 이 편향을 피한다. SHAP은 예측마다 특성 기여도를 가법적으로 분해해 전역·국소 설명을 모두 제공하지만 계산 비용이 크다. 시험에서는 "불순도 기반은 고카디널리티에 편향, 순열·SHAP이 더 신뢰된다"를 기억하면 된다.

다중공선성

두 개 이상의 특성이 강하게 상관되면 다중공선성(multicollinearity)이 생긴다. 선형 모델은 계수가 불안정해지고 해석이 왜곡된다.

진단 지표:

지표임계값
상관행렬|r| > 0.8~0.9면 의심
VIF(분산 팽창 계수)VIF > 5(주의), > 10(심각)
from statsmodels.stats.outliers_influence import variance_inflation_factor
import pandas as pd
 
vif = pd.DataFrame()
vif["feature"] = X.columns
vif["VIF"] = [variance_inflation_factor(X.values, i) for i in range(X.shape[1])]

처방: 상관된 특성 중 하나를 제거하거나, PCA로 합치거나, L2 정규화(Ridge)로 완화한다.

다중공선성 진단 → 처방

증상진단처방
두 특성의 |r|이 0.95상관행렬둘 중 하나 제거(도메인상 덜 중요한 쪽)
VIF가 10을 넘는 특성이 다수VIFPCA로 직교 축으로 합치기
계수 부호가 상식과 반대로 뒤집힘계수 불안정Ridge(L2)로 계수 분산을 눌러 완화
표본을 조금 바꿨더니 계수가 크게 요동재표본 안정성특성 축소 후 재학습
예측 성능은 좋은데 해석이 안 됨—예측만이 목적이면 트리 계열로 전환도 선택지

모델별 다중공선성 민감도

모델민감도나타나는 결과
선형/로지스틱 회귀매우 높음계수 분산 폭증, 부호 반전, 해석 불가
Ridge / Lasso중간L2가 계수를 안정화, L1은 상관 그룹 중 하나만 임의로 살림
SVM(선형 커널)중간계수 해석이 흔들림, 예측은 비교적 견딤
Decision Tree / RF / XGBoost낮음분할 시 한 번에 한 특성만 보므로 예측에 큰 영향 없음
KNN / K-means중간상관 특성이 사실상 같은 축을 두 번 세어 거리 가중이 왜곡됨

VIF는 VIF = 1/(1−R²)로 계산하며, 여기서 R²은 한 특성을 나머지 모든 특성으로 회귀했을 때의 결정계수다. R²이 1에 가까워질수록(즉 그 특성이 다른 특성들로 거의 완벽히 예측될수록) VIF가 폭발한다. 주의: 트리 기반 모델은 다중공선성에 둔감하다 — 분할이 한 번에 한 특성만 사용하기 때문이다. 다중공선성은 계수 해석이 중요한 선형 모델에서 치명적이다.

트리 모델에서 상관된 특성이 둘 있으면 중요도가 두 특성에 나뉘어 각각 낮게 나온다. "중요도가 낮으니 버려도 된다"고 판단하면 실제로는 중요한 신호를 통째로 버릴 수 있다.

실무 선택 순서

특성 선택은 한 방에 끝내는 작업이 아니라 값싼 것부터 순서대로 거르는 깔때기다.

[원시 특성 수백~수천 개]
        │
  ① 상수 · 준상수 컬럼 제거      (분산 임계값. 정보가 없는 축)
        │
  ② ID · 누수 의심 컬럼 제거     (행을 외우게 만드는 컬럼)
        │
  ③ 필터: 상관 · F-검정 · 상호정보량으로 점수화 → 상위 k개
        │
  ④ 다중공선성 정리              (|r| > 0.8~0.9, VIF > 5~10)
        │
  ⑤ 임베디드: Lasso 또는 트리 중요도로 추가 축소
        │
  ⑥ (여유가 있으면) 래퍼: RFE로 마지막 미세 조정
        │
  ⑦ 교차검증으로 성능 확인 — ③~⑥은 각 fold의 학습 부분에서만 수행
단계비용남는 특성 규모(예)
① 상수 제거거의 0수천 → 수천
③ 필터낮음수천 → 수십~수백
⑤ 임베디드중간(모델 1회 학습)수백 → 수십
⑥ 래퍼(RFE)높음(모델 반복 학습)수십 → 최종

AWS 서비스 매핑

상황서비스·기능이유
학습 전 분포·상관을 눈으로 보고 특성을 추리고 싶다SageMaker Data Wrangler시각적 데이터 준비와 분포·상관 리포트 제공
모델 예측에 대한 특성 기여도를 설명해야 한다SageMaker ClarifySHAP 기반 특성 기여도(feature attribution) 산출
노트북에서 필터·래퍼·Lasso를 직접 실험SageMaker 노트북 + scikit-learnSelectKBest, RFE, Lasso 등 자유 조합
특성이 상관돼 있어 직교 축으로 합치고 싶다SageMaker 내장 PCA해석을 포기하는 대신 다중공선성 해소

지문 단서 → 정답 매핑

지문 단서고를 답이유
"특성이 수천 개, 가장 빠르게 1차 선별"필터(상호정보량·F-검정)모델 학습이 필요 없다
"계수를 정확히 0으로 만들어 자동 선택"L1(Lasso)마름모 제약 → 희소 해
"계수를 줄이되 0으로 만들지는 않는다"L2(Ridge)원형 제약 → 축소만
"두 특성 상관 0.95, 계수가 불안정"VIF 확인 후 하나 제거다중공선성의 전형적 증상
"고카디널리티 특성의 중요도가 이상하게 높다"불순도 기반 편향 → 순열 중요도로 재확인MDI의 알려진 편향
"어떤 변수가 예측에 쓰였는지 설명해야 한다"특성 선택(PCA 아님)원본 특성 유지
"상관계수는 0인데 관계가 있어 보인다"상호정보량 / Spearman피어슨은 선형만 잡는다
"트리 모델인데 다중공선성 대응이 필요한가"대체로 불필요분할이 한 번에 한 특성만 사용

다음 글에서는 분포·상관을 눈으로 확인하는 데이터 시각화와 AWS의 BI 서비스 QuickSight를 다룬다.

📖 용어

  • 특성 선택(feature selection) : 원본 특성 중 쓸모 있는 것만 골라 남기는 차원 축소. 컬럼 이름이 그대로 유지된다.
  • 필터 방법 : 모델을 학습하지 않고 상관계수·카이제곱 같은 통계량만으로 특성을 점수 매겨 고르는 방식.
  • 래퍼 방법 : 특성 조합을 바꿔가며 실제 모델을 학습·평가해 최적 조합을 찾는 방식. 정확하지만 느리다.
  • 임베디드 방법 : 모델이 학습되는 과정에서 선택이 함께 일어나는 방식(Lasso, 트리 중요도).
  • RFE(재귀적 특성 제거) : 모델을 학습해 가장 약한 특성을 하나 빼고 다시 학습하는 과정을 반복하는 래퍼 기법.
  • 상호정보량(mutual information) : 두 변수가 서로 얼마나 정보를 공유하는지 재는 값. 비선형 관계도 잡아낸다.
  • 희소 해(sparse solution) : 많은 계수가 정확히 0인 해. L1 정규화가 만들어 낸다.
  • 불순도 기반 중요도(MDI) : 트리가 분할할 때 줄어든 불순도를 합산한 중요도. 분할 후보가 많은 특성을 과대평가한다.
  • 순열 중요도(permutation importance) : 특성 값을 무작위로 섞은 뒤 성능이 얼마나 떨어지는지로 재는 중요도.
  • 다중공선성 / VIF : 특성끼리 강하게 상관된 상태 / 그 정도를 재는 지표. 5를 넘으면 주의, 10을 넘으면 심각하다.

📝 연습 문제

선택지를 클릭하면 정답·해설이 펼쳐집니다.

문제 1

수천 개의 특성을 가진 데이터에서 모델을 학습하기 전에 가장 빠르게 무관한 특성을 1차로 걸러내고 싶다. 어떤 접근이 가장 적합한가?

문제 2

선형 회귀 모델에서 정확히 일부 특성의 계수를 0으로 만들어 자동 특성 선택 효과를 얻으려 한다. 적절한 규제는?

문제 3

두 특성의 상관계수가 0.95이고 선형 회귀 계수가 불안정하다. 가장 적절한 진단·처리는?

문제 4

트리 기반 모델의 불순도 기반 특성 중요도에 대한 설명으로 옳은 것은?

문제 5

규제 산업에서 "어떤 변수가 예측에 사용되었는지"를 설명해야 한다. PCA와 비교해 특성 선택을 선호하는 이유로 가장 적절한 것은?

이전차원 축소: PCA, t-SNE, 차원의 저주Week 4 · Day 1다음 데이터 시각화: 분포·상관관계·QuickSight·인사이트 도출Week 4 · Day 3

참고 공식 자료

  • MLS-C01 공식 시험 안내(새 탭에서 열림)
  • Amazon SageMaker AI 공식 문서(새 탭에서 열림)

이 페이지

  • 왜 특성 선택인가
  • 세 가지 접근
  • 어떤 접근을 고를까
  • 필터 방법
  • 래퍼 방법: RFE
  • 임베디드 방법: L1 정규화
  • 특성 중요도
  • 다중공선성
  • 다중공선성 진단 → 처방
  • 모델별 다중공선성 민감도
  • 실무 선택 순서
  • AWS 서비스 매핑
  • 지문 단서 → 정답 매핑
  • 용어
  • 연습 문제