스무딩 타깃 인코딩

AI
gemma-4-31b
작성자
익명
작성일
2026.08.06
조회수
4
버전
v2

📋 문서 버전

이 문서는 2개의 버전이 있습니다. 현재 최신 버전을 보고 있습니다.

스무딩 타깃 인코딩

스무딩 타깃코딩(Smoothing Target Encoding은 범주형 변수를 수치형 변수로 변환하는 데이터 정제 기법 중 하나로, 특히 머신러닝 모델의 성능 향상을 위해 널리 사용된다. 이 기법은 범주형 변수의 각 카테고리에 대해 해당 카테고리가 목표 변수(target variable)에 미치는 영향을 수치로 표현하면서, 소수의 샘플로 인한 과적합(overfitting) 문제를 완화**하는 데 초점을 둔다.

개요

범주형 변수는 머신러닝 모델이 직접 처리하기 어려우므로 일반적으로 인코딩 과정을 거친다. 대표적인 인코딩 방식으로 원-핫 인코딩(One-Hot Encoding), 레이블 인코딩(Label Encoding) 등이 있지만, 카테고리가 많거나 불균형한 분포를 가진 경우 성능이 저하될 수 있다.

타깃 인코딩(Target Encoding)은 각 범주를 해당 카테고리에 속하는 샘플들의 목표 변수의 평균값으로 대체하는 방식이다. 예를 들어, 분류 문제에서 목표 변수가 이진(0 또는 1)이라면, 각 범주에 대해 그 범주에 속한 샘플들의 평균 타깃 값을 계산하여 그 범주를 대표하는 수치로 사용한다.

그러나 단순한 타깃 인코딩은 레어 카테고리(즉, 샘플 수가 매우 적은 카테고리)에서 문제가 된다. 예를 들어, 1개의 샘플만 있는 카테고리가 타깃 값 1을 가진다면, 이 카테고리는 1.0으로 인코딩되어 모델이 이를 과도하게 신뢰하게 된다. 이는 과적합으로 이어질 수 있다.

이러한 문제를 해결하기 위해 도입된 것이 스무딩 타깃 인코딩이다. 이 기법은 각 카테고리의 로컬 타깃 평균과 글로벌 타깃 평균을 가중 평균하여 최종 인코딩 값을 결정함으로써, 소수 데이터에 의한 노이즈를 억제한다.


스무딩 타깃 인코딩의 수식

스무딩 타깃 인코딩의 기본 수식은 다음과 같다:

$$ \text{Encoded Value} = \frac{n_i \cdot \mu_i + \alpha \cdot \mu_{\text{global}}}{n_i + \alpha} $$

여기서: - $n_i$: 카테고리 $i$에 속한 샘플의 수 - $\mu_i$: 카테고리 $i$ 내 샘플들의 타깃 평균 - $\mu_{\text{global}}$: 전체 데이터셋의 타깃 평균 - $\alpha$: 스무딩 파라미터 (하이퍼파라미터)

해석

  • $n_i$가 작을수록(즉, 카테고리 샘플 수가 적을수록) 인코딩 값은 글로벌 평균 $\mu_{\text{global}}$에 가까워진다.
  • $n_i$가 클수록 로컬 평균 $\mu_i$에 가까워진다.
  • $\alpha$는 스무딩 강도를 조절하는 값으로, 일반적으로 경험적으로 설정되며, 보통 1~10 사이의 값을 사용한다.

스무딩 타깃 인코딩의 장점

  1. 과적합 방지: 소수의 샘플을 가진 카테고리에 대해 과도한 신뢰를 방지한다.
  2. 범주형 정보의 효과적 활용: 카테고리와 목표 변수 간의 관계를 수치로 표현함으로써 모델이 학습하기 쉬운 형태로 변환한다.
  3. 고차원 문제 해결: 원-핫 인코딩과 달리 차원 증가 없이 인코딩이 가능하다.

주의사항 및 위험 요소

  • 리크(leak) 방지 필요: 학습 데이터에서 타깃 값을 기반으로 인코딩을 수행할 경우, 타깃 정보가 테스트 데이터에 누수될 수 있다. 이를 방지하기 위해 반드시 교차 검증(cross-validation) 기반의 타깃 인코딩 또는 out-of-fold 방식을 사용해야 한다.

예: K-겹 교차 검증에서 각 폴드의 검증 데이터는 그 폴드 외의 학습 데이터를 기반으로 인코딩 값을 계산받아야 한다.

  • 회귀 vs 분류 문제 적용 차이:
  • 분류 문제: 이진 또는 다중 클래스 타깃의 평균(예: 1의 비율)
  • 회귀 문제: 타깃 값의 평균(예: 평균 가격)

  • 파라미터 조정 필요: 스무딩 파라미터 $\alpha$는 데이터에 따라 최적값이 달라지므로, 그리드 서치나 베이지안 최적화 등을 통해 조정하는 것이 좋다.


구현 예시 (Python)

import pandas as pd
import numpy as np
from sklearn.model_selection import KFold

def smoothing_target_encoding(train_df, test_df, cat_col, target_col, alpha=5):
    # 전체 데이터의 글로벌 평균
    global_mean = train_df[target_colmean()
    
    # 각 카테고리별 통계
    cat_stats = train_df.groupby(cat_col)[target_col].agg(['mean', 'count']).reset_index()
    cat_stats['smoothed'] = (cat_stats['count'] * cat_stats['mean'] + alpha * global_mean) / (cat_stats['count'] + alpha)
    
    # 매핑 생성
    mapping = dict(zip(cat_stats[cat_col], cat_stats['smoothed']))
    
    # 학습 및 테스트 데이터 인코딩
    train_encoded = train_df[cat_col].map(mapping).fillna(global_mean)
    test_encoded = test_df[cat_col].map(mapping).fillna(global_mean)
    
    return train_encoded, test_encoded


관련 기법

  • Leave-One-Out Target Encoding: 현재 샘플을 제외한 동일 카테고리 내 타깃 평균을 사용하여 리크를 줄임.
  • Bayesian Target Encoding: 베이지안 추론 기반으로 사전 분포를 설정하여 인코딩.
  • James-Stein Estimator: 통계적 추정 기법을 활용한 스무딩 방식.

스무딩의 통계적 원리와 메커니즘

스무딩 타깃 인코딩은 통계학의 수축 추정(Shrinkage Estimation) 원리를 기반으로 합니다. 단순 타깃 인코딩은 각 카테고리의 평균을 그대로 사용하는 최대 가능도 추정(Maximum Likelihood Estimation, MLE) 방식입니다. 하지만 샘플 수($n_i$)가 적은 카테고리의 경우, 단 몇 개의 샘플만으로 계산된 평균은 표본 오차가 매우 커서 분산(Variance)이 극도로 높아지는 문제가 발생합니다.

스무딩은 이러한 고분산 추정치를 전체 데이터의 평균인 글로벌 평균($\mu_{\text{global}}$) 방향으로 '수축'시킴으로써 해결합니다. 이는 편향-분산 트레이드오프(Bias-Variance Trade-off)를 의도적으로 조절하는 과정입니다. - 분산 감소: 샘플 수가 적은 카테고리의 극단적인 값을 글로벌 평균으로 끌어당겨 추정치의 변동성을 줄입니다. - 편향 도입: 로컬 평균이라는 '정답'에서 약간 멀어지는 편향(Bias)이 발생하지만, 결과적으로 모델의 일반화 성능(Generalization)은 향상됩니다.

수식 구성 요소 및 변수 정의

스무딩 수식의 각 항은 데이터의 신뢰도(Confidence)를 정량화하여 로컬 정보와 글로벌 정보의 가중치를 결정합니다.

변수 정의 의미 및 역할
$n_i$ 카테고리 $i$의 샘플 수 로컬 데이터의 양 (신뢰도의 척도)
$\mu_i$ 카테고리 $i$의 타깃 평균 해당 범주의 특성을 나타내는 로컬 정보
$\mu_{\text{global}}$ 전체 데이터의 타깃 평균 데이터셋 전체의 일반적인 경향성 (사전 지식)
$\alpha$ 스무딩 파라미터 로컬 정보를 신뢰하기 위해 필요한 최소 샘플 수의 기준
$\frac{n_i}{n_i + \alpha}$ 로컬 가중치 ($\lambda$) 샘플 수가 많을수록 1에 수렴하며 로컬 정보를 더 많이 반영
$\frac{\alpha}{n_i + \alpha}$ 글로벌 가중치 ($1-\lambda$) 샘플 수가 적을수록 1에 수렴하며 글로벌 정보를 더 많이 반영

스무딩 파라미터 $\alpha$의 영향 분석

$\alpha$ 값은 로컬 평균과 글로벌 평균 사이의 균형점을 결정하는 핵심 하이퍼파라미터입니다.

$\alpha$ 값에 따른 동작 차이

  • $\alpha \to 0$ (단순 타깃 인코딩 수렴): 글로벌 평균의 영향력이 사라지고 $\mu_i$만 남습니다. 데이터가 적은 카테고리에서도 로컬 평균을 그대로 사용하므로 과적합(Overfitting) 위험이 매우 높습니다.
  • $\alpha \to \infty$ (글로벌 평균 수렴): 로컬 평균의 영향력이 사라지고 모든 카테고리가 $\mu_{\text{global}}$로 인코딩됩니다. 범주형 변수의 변별력이 사라지는 과소적합(Underfitting) 상태가 됩니다.

$\alpha$ 값 변화에 따른 비교 그래프 (개념도)

$\alpha$가 증가함에 따라 인코딩 값은 다음과 같은 궤적을 그립니다.

인코딩 값
  ^
  |          /--- (alpha=0: 로컬 평균에 밀착, 변동성 큼)
  |         / 
  |  ------/---- (alpha=5: 적절한 스무딩, 완만한 곡선)
  | / 
  |/____________ (alpha=inf: 글로벌 평균 직선)
  +--------------------------------------------> 샘플 수 (n_i)

선택 기준

  • 데이터 희소성(Sparsity)이 높을 때: 카테고리당 샘플 수가 전반적으로 적다면 $\alpha$ 값을 높여 글로벌 평균의 지지력을 강화해야 합니다.
  • 카테고리별 샘플 분포가 불균형할 때: 일부 카테고리는 매우 많고 일부는 매우 적다면, $\alpha$를 통해 적은 샘플을 가진 카테고리만 선택적으로 수축시키는 전략이 필요합니다.

베이지안 관점의 수식 유도

스무딩 타깃 인코딩은 베이지안 추론의 사후 확률(Posterior) 계산 과정으로 해석할 수 있습니다.

  1. 사전 분포(Prior) 설정: 우리가 데이터의 개별 카테고리를 보기 전, 타깃 값의 분포에 대해 알고 있는 정보는 전체 평균 $\mu_{\text{global}}$입니다. 이를 사전 분포의 기댓값으로 설정합니다.
  2. 우도(Likelihood) 계산: 특정 카테고리 $i$에서 관찰된 샘플들의 평균 $\mu_i$는 해당 카테고리의 실제 특성을 나타내는 우도 정보가 됩니다.
  3. 사후 분포(Posterior) 도출: 베이즈 정리에 따라 $\text{사후 분포} \propto \text{우도} \times \text{사전 분포}$가 됩니다.
  4. 이때, 사전 분포의 강도를 $\alpha$라는 가상의 샘플 수(Pseudo-counts)로 표현합니다.
  5. 즉, "이미 $\alpha$개의 샘플이 있고 그들의 평균이 $\mu_{\text{global}}$이었다"라고 가정하는 것입니다.
  6. 최종 수식 유도: $$\text{Posterior Mean} = \frac{(\text{실제 관측 샘플 수} \times \text{관측 평균}) + (\text{가상 샘플 수} \times \text{사전 평균})}{\text{전체 샘플 수}}$$ $$\text{Encoded Value} = \frac{n_i \cdot \mu_i + \alpha \cdot \mu_{\text{global}}}{n_i + \alpha}$$

결과적으로 스무딩 타깃 인코딩은 글로벌 평균을 사전 확률로 사용하는 베이지안 평균 추정법의 간략화된 형태입니다.

참고 자료

  • Micci-Barreca, D. (2001). "A Preprocessing Scheme for High-Cardinality Categorical Attributes in Classification and Prediction Problems." ACM SIGKDD Explorations Newsletter.
  • Kaggle 커널: "Target Encoding Best Practices"
  • sklearn-contrib 패키지: category_encoders 라이브러리의 TargetEncoder

스무딩 타깃 인코딩은 데이터 정제 과정에서 고차원 범주형 변수를 효과적으로 처리하고, 모델의 일반화 성능을 높이는 강력한 도구이다. 다만, 타깃 리크를 철저히 방지하고, 적절한 스무딩 파라미터를 선택하는 것이 성공적인 적용을 위한 핵심 요소이다.

AI 생성 콘텐츠 안내

이 문서는 AI 모델(gemma-4-31b)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?