본문 바로가기

인공지능 시작하기/Machine Learning 이해하기

Clustering

반응형

군집화(Clustering)

군집화(Clustering)은 특정 데이터를 임의의 k개의 군집(Cluster)으로 나누는 방법이다. 분류와 달리 사람이 먼저 label을 달 필요가 없이, 개수만 정해 주면 알고리즘이 알아서 비슷한 데이터끼리 k개의 군집으로 모아 준다.

(1) K-Means Clustering

  • 임의로 데이터를 k개 부분집합으로 나눈다. (여기서 K를 알고 있어야 한다)

    • 각 object에 대해 k개의 중심 object와의 거리를 구하고 그 중 가장 유사한 중심 object의 클러스터에 속하게 한다.
    • 클러스터의 중심점을 다시 계산한다.
    • 더 이상 클러스터 간 변화가 없을 때까지 반복한다.
  • Elbow Method (K-Means Clustering with unknown K)

    • 클러스터의 수를 늘려가면서 클러스터링 결과를 확인한다.
    • 클러스터의 개수가 한 개 늘어났을 때, 이전 결과보다 아주 좋아지지 않는다면 멈춘다. (Elbow point)
    • 이 때의 Elbow point값을 K로 한다. (판단 기준을 정해야 한다.)
  • Elbow point 판단 기준

    • Davies-Bouldin Index

      • 두 클러스터 내부의 모든 데이터와 중심점 간의 거리를, 클러스터 중심점 간의 거리로 나눔.
      • 클러스터 유사도가 높고 클러스터 유사도가 낮아야 DB값이 낮다.
    • Dunn Index

      • 클러스터 간 최소 거리와 클러스터 내 최대 거리의 비율.
      • 클러스터 유사도가 높고 클러스터 유사도가 낮아야 D값이 크다.
    • Silhouette

      • 데이터와, 데이터가 속한 클러스터(a)와 그 이웃 클러스터(b) 간의 평균 거리(s)를 구해 데이터가 올바른 클러스터에 있는지 판정한다.
      • -1 ~ 1 사이의 결과가 나오는데 1에 가까울 수록 올바른 클러스터에 분류된 것, -1에 가까울 수록 잘못된 클러스터에 분류된 것이다.
    • within-cluster sum of squares

      • 클러스터의 중심점과 클러스터 내부의 점과의 거리의 합.
      • scikit-learn의 Cluster 모듈 Kmeans가 멤버로 가지고 있다 (Kmeans.inertia_)
반응형

'인공지능 시작하기 > Machine Learning 이해하기' 카테고리의 다른 글

게임에서의 강화학습  (0) 2020.04.12
Classification  (0) 2020.04.12
Regression  (0) 2020.04.12