본문 바로가기
데이브리/머신러닝

균일 분포와 균등 분포 그리고 RandomizedSearch

by 수스리 2025. 4. 15.

균일 분포와 균등 분포는 본질적으로 같은 개념을 가리키는 용어입니다. 두 용어 모두 확률론과 통계학에서 사용되는 분포로, 특정 범위 내의 모든 값이 동일한 확률을 가지는 분포를 의미합니다.

균일 분포/균등 분포(Uniform Distribution)

기본 개념

  • 주어진 범위 내에서 모든 값이 발생할 확률이 동일한 분포
  • 주사위를 던지거나 카드를 뽑는 등의 상황에서 볼 수 있는 분포
  • 수학적으로는 모든 값에 대해 확률 밀도 함수(PDF)가 일정한 값을 가짐

종류

  1. 이산 균일 분포(Discrete Uniform Distribution)
    • 유한한 개수의 값들이 동일한 확률을 가짐
    • 예: 주사위를 던질 때 1부터 6까지의 숫자가 나올 확률은 모두 1/6로 동일
  2. 연속 균일 분포(Continuous Uniform Distribution)
    • 연속적인 범위 내의 모든 값이 동일한 확률을 가짐
    • 수학적 표기: U(a, b) - a와 b 사이의 균일 분포
    • 확률 밀도 함수: f(x) = 1/(b-a), a ≤ x ≤ b
    • 예: [0, 1] 범위의 균일 분포에서는 모든 구간이 동일한 확률을 가짐

특성

  • 평균(기댓값): (a + b)/2
  • 분산: (b - a)²/12
  • 모든 값이 동일한 확률을 가지므로 그래프로 표현하면 직사각형 모양이 됨

활용

  • 난수 생성
  • 시뮬레이션
  • 베이지안 통계에서의 사전 분포
  • 하이퍼파라미터 튜닝(RandomizedSearchCV와 같은)

귀하가 언급한 SVC 모델의 하이퍼파라미터 튜닝에서는 stats.uniform(loc, scale)을 사용하여 연속 균일 분포에서 C와 gamma 값을 무작위로 추출하여 다양한 모델 구성을 테스트하는 데 활용됩니다.

stats.uniform의 의미와 사용법

stats.uniform(loc, scale)은 scipy.stats 라이브러리의 균일 분포(Uniform Distribution) 객체를 생성하는 함수입니다.

  • loc: 분포의 시작점 (최소값)
  • scale: 분포의 너비 (최대값 - 최소값)

따라서:

  • stats.uniform(0, 50)은 0부터 50까지의 균일 분포를 의미합니다.
  • stats.uniform(0, 1)은 0부터 1까지의 균일 분포를 의미합니다.

RandomizedSearchCV와 확률 분포의 관계

RandomizedSearchCV는 하이퍼파라미터 튜닝을 할 때, 지정된 확률 분포에서 무작위로 값을 추출하여 모델을 학습하고 평가합니다. 이는 모든 가능한 조합을 시도하는 GridSearchCV보다 효율적입니다.

hyperparams = {
    "C": stats.uniform(0, 50),
    "gamma": stats.uniform(0, 1)
}

이 의미는:

  • "C" 매개변수는 0부터 50 사이에서 균일한 확률로 무작위 값을 선택합니다.
  • "gamma" 매개변수는 0부터 1 사이에서 균일한 확률로 무작위 값을 선택합니다.

SVC 모델에서 C와 gamma의 의미

  1. C 매개변수:
    • 규제(regularization) 매개변수로, 오분류된 샘플에 대한 페널티를 조절합니다.
    • 값이 클수록 모델이 훈련 데이터에 더 맞추려고 시도하므로 과적합 위험이 높아집니다.
    • 값이 작을수록 더 단순한 결정 경계를 만들어 일반화 성능이 향상될 수 있습니다.
  2. gamma 매개변수:
    • RBF 커널의 영향 범위를 결정합니다.
    • 값이 작을수록 영향 범위가 넓어져 부드러운 결정 경계를 만듭니다.
    • 값이 클수록 영향 범위가 좁아져 훈련 데이터 포인트에 더 민감해집니다.

RandomizedSearchCV는 이러한 분포에서 무작위로 값을 추출하여 다양한 조합을 시도하고, 가장 성능이 좋은 하이퍼파라미터 조합을 찾아냅니다.

C 파라미터

C는 규제(regularization) 파라미터로, 오분류에 대한 패널티를 조절합니다:

  • 높은 C 값:
    • 더 작은 마진(여백)을 허용함
    • 더 많은 훈련 데이터 포인트를 올바르게 분류하려고 노력함
    • 결정 경계가 더 복잡해짐
    • 과적합(overfitting)의 위험이 증가함
  • 낮은 C 값:
    • 더 넓은 마진을 선호함
    • 일부 훈련 데이터 포인트의 오분류를 허용함
    • 결정 경계가 더 단순해짐
    • 과소적합(underfitting)의 위험이 있지만 일반화 성능이 향상될 수 있음

gamma 파라미터

gamma는 RBF(Radial Basis Function) 커널을 사용할 때만 관련이 있으며, 결정 경계의 모양을 결정합니다:

  • 높은 gamma 값:
    • 각 훈련 샘플의 영향 범위가 좁아짐
    • 결정 경계가 더 복잡하고 구불구불해짐
    • 개별 데이터 포인트에 더 민감해짐
    • 과적합의 위험이 증가함
  • 낮은 gamma 값:
    • 각 훈련 샘플의 영향 범위가 넓어짐
    • 결정 경계가 더 부드럽고 단순해짐
    • 데이터의 전반적인 분포에 더 의존함
    • 일반화 성능이 향상될 수 있지만 과소적합의 위험이 있음

실제 튜닝 시 고려사항

이 두 파라미터는 상호작용하여 모델의 성능에 영향을 미칩니다:

  • C가 크고 gamma가 작으면: 복잡하지만 넓은 영향 범위를 가진 모델
  • C가 작고 gamma가 크면: 단순하지만 좁은 영향 범위를 가진 모델
  • C와 gamma가 모두 크면: 매우 복잡하고 훈련 데이터에 과적합될 가능성이 높음
  • C와 gamma가 모두 작으면: 매우 단순하고 과소적합될 가능성이 높음

RandomizedSearchCV를 사용할 때 이 두 파라미터에 대해 다양한 값을 시도하여 최적의 조합을 찾는 것이 중요합니다.