머신러닝 & 딥러닝

[머신러닝 & 딥러닝] K-Means 튜닝 하이퍼파라미터

beginner-in-coding 2025. 4. 21. 10:09

1. 주요 KMeans 파라미터:

  • n_clusters: 클러스터의 수. 일반적으로 Elbow Method나 Silhouette Score 등을 사용하여 최적의 k 값을 찾습니다.
  • init: 초기 클러스터 중심을 설정하는 방법. 기본값은 'k-means++'로, 클러스터 중심을 자동으로 잘 초기화합니다.
    • 'k-means++': 더 나은 초기화 방법으로, 과거의 KMeans 알고리즘보다 더 빠르고 안정적인 결과를 제공합니다.
    • 'random': 무작위로 초기 중심을 설정합니다.
    • ndarray: 사용자 지정 중심을 제공할 수도 있습니다.
  • max_iter: 최대 반복 횟수. 기본값은 300입니다.
    • 너무 적게 설정하면 수렴하지 않을 수 있고, 너무 크게 설정하면 계산 비용이 커질 수 있습니다.
  • n_init: 초기화 반복 횟수. 기본값은 10입니다. KMeans는 여러 번 초기화한 후 최적의 결과를 선택합니다. 더 큰 값은 더 안정적인 결과를 도출할 수 있지만, 시간이 더 걸릴 수 있습니다.
  • tol: 알고리즘이 수렴한다고 판단하는 임계값. 기본값은 1e-4입니다.
  • algorithm: 알고리즘 종류. 기본값은 'auto'입니다.
    • 'auto': 데이터와 문제에 맞는 최적의 알고리즘을 자동으로 선택합니다.
    • 'full': 전통적인 Lloyd 알고리즘.
    • 'elkan': 더 효율적인 알고리즘, 일부 경우 더 빠를 수 있습니다.

2. KMeans 파라미터 튜닝 방법:

  1. n_clusters (클러스터 수):
    • Elbow Method 또는 Silhouette Score 등을 사용하여 최적의 k 값을 찾습니다.
    • 여러 k 값을 시도하여 그 중 가장 좋은 성능을 낸 값을 선택합니다.
  2. n_init (초기화 반복 횟수):
    • n_init 값을 늘리면 더 안정적이고 좋은 클러스터링을 얻을 수 있지만 시간이 더 걸립니다.
    • n_init=10이면 대부분의 경우 괜찮지만, 더 중요한 경우에는 20, 50으로 늘려서 실험할 수 있습니다.
  3. max_iter (최대 반복 횟수):
    • 반복 횟수를 증가시키면 수렴 여부를 더 잘 보장할 수 있지만, 데이터가 이미 잘 분리된다면 과도한 반복은 비효율적일 수 있습니다.
  4. init (초기화 방법):
    • 'k-means++'가 기본값이고, 일반적으로 가장 좋은 성능을 보입니다. 그러나 더 빠르게 실험할 때는 'random'을 사용할 수도 있습니다.
  5. tol (수렴 임계값):
    • tol 값을 너무 작게 설정하면 반복 횟수가 늘어날 수 있으므로 적절한 값을 설정하는 것이 중요합니다.