ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Hierarchical clustering vs K-means
    Data Science 2023. 2. 5. 16:39

    Clustering 에서 대표적으로 쓰이는 Hierarchical clustering 과 K-means. Hierarchical clustering은 Clustering갯수를 정해줄 필요가 없다는 점과 실행시킬 때마다 Cluster가 같다는 것이 장점이다.

     

    Hierarchical clustering의 결과 예시. Dendrogram방식을 적용한 것이 특징이다.

     

    반면 K-means는 cluster의 갯수를 사용자가 정해주어야 한다. 위 그림에서 cluster는 3개이다. 연속적인 값을 분류할 떄 더 적합하다고 할 수 있다.

     

    정리하자면 K-means 알고리즘과 Hierarchical clustering은 다음과 같은 면에서 차이점이 있다.

     

    1. Approach method: Hierarchical clustering는 기존 군집을 재귀적으로 병합하거나 분할하여 군집 계층을 구축하는 반면, k-means은 각 데이터 포인트를 가장 가까운 군집 중심에 반복적으로 할당하여 데이터를 k 군집으로 분할합니다.

    2. Number of clusters: Hierarchical clustering에서 클러스터 수는 미리 지정되지 않고 덴드로그램 또는 미리 지정된 중지 기준에 따라 결정됩니다. k-means에서 클러스터 수(k)는 사용자가 지정합니다.

    3. Distance metric: Hierarchical clustering은 일반적으로 유클리드 또는 맨해튼 거리와 같은 거리 메트릭을 사용하여 데이터 포인트 간의 유사성을 결정합니다. K-means은 동일한 거리 메트릭을 사용하여 데이터 포인트와 클러스터 중심 사이의 거리를 계산합니다.

    4. Output: Hierarchical clustering는 군집의 계층과 군집 간의 관계를 설명하는 덴드로그램을 생성합니다. 반면 K-means는 데이터를 k 클러스터와 해당 클러스터 중심으로 분할합니다.

    5. Computational complexity: Hierarchical clustering은 특히 대규모 데이터 세트의 경우 시간 복잡성이 높습니다. K-means는 일반적으로 더 빠르지만 결과는 클러스터 중심의 초기 배치에 민감할 수 있습니다.

    결론적으로, Hierarchical clustering와 k-means 모두 장단점이 있으며 방법 선택은 당면한 문제의 세부 사항과 원하는 출력에 따라 달라집니다.

     

    다음은 Hierarchical clustering와 k-means의 차이를 보여주는 예제입니다:

    우리가 100명의 사람들로 구성된 데이터 세트를 가지고 있다고 가정합시다. 여기서 각 사람의 키와 몸무게 데이터가 있습니다. 이 데이터를 사용하여 사람들을 물리적 속성에 따라 다른 클러스터로 그룹화하려고 합니다.

    계층적 클러스터링을 사용하여, 우리는 모든 사람들 사이의 쌍 별 거리를 계산하는 것으로 시작하고, 가장 가까운 두 사람을 하나의 클러스터로 병합할 것입니다. 이 과정은 100명의 모든 사람이 단일 군집으로 그룹화되거나 사전 지정된 정지 기준을 충족할 때까지 반복됩니다. 결국, 우리는 군집의 계층과 군집 사이의 관계를 보여주는 덴드로그램을 갖게 될 것입니다.

    k-means를 사용하여, 우리는 우리가 형성하고자 하는 클러스터의 수를 지정할 것입니다. 이 경우 k=3을 지정한다고 합시다. 다음으로, 우리는 무작위로 세 개의 클러스터 중심체를 초기화할 것입니다. 그런 다음, 우리는 각 사람을 가장 가까운 중심에 할당하고 할당된 사람들의 평균을 기반으로 중심을 다시 계산합니다. 이 과정은 수렴될 때까지 반복됩니다. 결국, 우리는 세 무리의 사람들과 그에 상응하는 중심점(Centroid)를 갖게 될 것입니다.

    보시다시피 Hierarchical clustering 은 모든 데이터 점에서 개별 군집으로 시작하여 더 큰 군집으로 결합하는 반면 k-means는 모든 데이터 점에서 시작하여 더 작은 군집으로 나눕니다. 두 알고리즘 중 무엇을 선택할 것인지는 데이터셋과 문제에 따라서 달라질 수 있습니다.

Designed by Joshua Chung.