My IBM 로그인 구독하기

k-평균 클러스터링이란 무엇인가요?

2024년 6월 26일

작성자

Eda Kavlakoglu

Program Manager

Vanna Winland

AI Advocate & Technology Writer

K-평균 클러스터링은 데이터 클러스터링에 사용되는 비지도 학습 알고리즘으로, 레이블이 지정되지 않은 데이터 포인트를 그룹 또는 클러스터로 그룹화합니다.

k-평균 클러스터링은 머신 러닝에서 가장 많이 사용되는 클러스터링 방법 중 하나입니다. 지도 학습과 달리 k-평균 클러스터링 알고리즘이 사용하는 훈련 데이터에는 레이블이 지정되지 않아 데이터 포인트에 정의된 분류 구조가 없습니다.

배타적, 중첩적, 계층적, 확률적 등 다양한 유형의 클러스터링 알고리즘이 존재하지만, k-평균 클러스터링 알고리즘은 배타적 또는 '하드' 클러스터링 방법의 한 예입니다. 이 형태의 그룹화는 데이터 포인트가 하나의 클러스터에만 존재할 수 있도록 규정합니다. 또한 이러한 유형의 클러스터 분석은 데이터 과학에서 시장 세분화, 문서 클러스터링, 이미지 세분화 및 이미지 압축에 일반적으로 사용됩니다. k-평균 알고리즘은 효율적이고 효과적이며 간단하기 때문에 클러스터 분석에서 널리 사용되는 방법입니다.

K-평균은 중심점 사이의 거리에 따라 데이터 세트를 유사한 그룹으로 분할하는 반복적인 중심점 기반 클러스터링 알고리즘입니다. 중심점 또는 클러스터 중심은 데이터의 특성에 따라 클러스터 내에 있는 모든 포인트의 평균 또는 중앙값입니다.

트랙에서 굴러가는 공의 3D 디자인

최신 AI 뉴스 + 인사이트 


주간 Think 뉴스레터에서 AI, 클라우드 등에 대한 전문적으로 선별된 인사이트와 뉴스를 발견하세요. 

k-평균 클러스터링은 어떻게 작동하나요?

K-평균 클러스터링은 데이터 포인트와 클러스터 중심 사이의 거리 합을 최소화하기 위한 반복적인 프로세스입니다.

K-평균 클러스터링 알고리즘은 클러스터 중심으로부터의 수학적 거리 측정값(일반적으로 유클리드)을 사용하여 데이터 요소를 클러스터로 분류하는 방식으로 작동합니다. 목표는 데이터 포인트와 할당된 클러스터 사이의 거리 합계를 최소화하는 것입니다. 중심점에 가장 가까운 데이터 포인트는 동일한 범주 내에서 함께 그룹화됩니다. k 값, 즉 클러스터 수가 높을수록 더 작은 클러스터에 더 많은 세부 정보가 포함되고, k 값이 낮을수록 더 큰 클러스터에 더 적은 세부 정보가 포함된다는 것을 의미합니다.

초기화 k

기존의 k-평균 클러스터링 알고리즘에는 몇 단계가 필요합니다. 첫 번째 단계는 중심을 초기화하는 것입니다. 여기서 k는 특정 데이터 세트에 대해 선택한 클러스터 수와 같습니다. 이 방법은 무작위 선택 방법 또는 초기 중심 샘플링 방법을 사용합니다.

중심점 할당

다음 단계는 기대치 최대화 머신 러닝 알고리즘에 기반한 2단계 반복 프로세스가 포함됩니다.1 기대치 단계에서는 거리를 기준으로(일반적으로 유클리드) 각 데이터 요소를 가장 가까운 중심에 할당합니다. 최대화 단계에서는 각 클러스터에 대한 모든 포인트의 평균을 계산하고 클러스터 중심, 즉 중심점을 다시 할당합니다. 이 프로세스는 중심 위치가 수렴에 도달하거나 최대 반복(Iteration) 횟수에 도달할 때까지 반복됩니다.

k-평균 클러스터링은 간단하지만 초기 조건과 이상값에 민감합니다. 가장 의미 있는 클러스터를 얻으려면 중심값 초기화와 클러스터 수 k를 최적화하는 것이 중요합니다. 평가 메트릭과 초기 중심 샘플링 방법을 사용하여 알고리즘의 클러스터링 구성 요소를 평가하고 최적화하는 방법에는 여러 가지가 있습니다.

Mixture of Experts | 팟캐스트

AI 디코딩: 주간 뉴스 요약

세계적인 수준의 엔지니어, 연구원, 제품 리더 등으로 구성된 패널과 함께 불필요한 AI 잡음을 차단하고 실질적인 AI 최신 소식과 인사이트를 확인해 보세요.

클러스터 평가 메트릭

품질 클러스터에는 아래 속성이 2개 이상 포함되어 있습니다. 

  1. 클러스터 내의 모든 데이터 포인트는 유사해야 합니다.
  2. 클러스터는 서로 구별되어야 합니다.

이러한 속성은 클러스터 내 거리를 최소화하고 데이터 세트에 있는 모든 데이터 포인트의 클러스터 간 거리를 극대화함으로써 얻을 수 있습니다. 즉, 클러스터가 더 조밀하고 다른 클러스터와 격리될수록 더 좋습니다. k-평균 클러스터링 알고리즘의 목표는 오차제곱합(SSE)을 최소화하는 것입니다.2 각 포인트에서 가장 가까운 중심점까지 유클리드 거리 제곱의 SSE를 계산함으로써 각 클러스터 내의 총 변동을 측정하여 클러스터 할당의 품질을 평가할 수 있습니다.

클러스터 평가 메트릭은 품질을 확인하고 클러스터링 결과를 분석하기 위한 다양한 관점을 제공합니다. 이는 최적의 클러스터 수와 중심점 초기화를 선택하는 데 도움이 됩니다. 다음 평가 메트릭은 클러스터링에서 클러스터 내 및 클러스터 간 거리를 측정하는 일반적인 방법입니다.

관성

k-평균 클러스터링 알고리즘은 거리 메트릭을 기반으로 데이터 세트가 얼마나 잘 클러스터링되었는지 측정하는 평가 메트릭인 관성을 최소화하는 중심점 또는 클러스터 중심을 선택하는 것을 목표로 합니다. 관성은 데이터 포인트와 중심점 사이의 거리를 측정하고, 거리를 제곱하고, 클러스터의 각 데이터 포인트에 대해 해당 제곱을 합산하여 계산됩니다. 이 합계 또는 관성 값은 클러스터 내 거리이며, 합계가 낮을수록 클러스터 내의 데이터 포인트가 조밀하거나 더 유사하다는 것을 의미하기 때문에 더 좋습니다.3

Dunn 지수

두 번째 속성은 Dunn 지수로 측정됩니다. Dunn 지수는 최소 클러스터 간 거리와 최대 클러스터 내 거리 간의 관계를 나타냅니다. 클러스터 간 거리가 긴 클러스터는 클러스터가 가능한 한 서로 다르다는 것을 의미하기 때문에 더 나은 품질을 나타냅니다.4

k-평균 성능 최적화

최상의 클러스터링 결과를 얻기 위해 k-평균을 사용할 때 최적화가 중요합니다.

k-평균 알고리즘은 무작위 초기화 단계로 인해 비결정적입니다. 이 방법은 동일한 데이터에 대해 알고리즘을 두 번 수행하면 클러스터 할당이 다를 수 있음을 의미합니다. 최적의 클러스터링 결과를 얻으려면 초기 중심점과 최적의 클러스터 수를 적절하게 선택하여 k-평균 알고리즘의 정확도와 속도를 향상합니다.

클러스터 중심점 초기화

각 클러스터는 클러스터 중심을 나타내는 데이터 포인트인 중심점으로 표시됩니다. K-평균은 클러스터의 데이터 포인트 간 거리를 중심점 또는 k 평균값으로 최소화하여 유사한 데이터 포인트를 클러스터로 그룹화합니다. K-평균 알고리즘의 주요 목표는 포인트와 할당된 클러스터 중심점 사이의 총 거리를 최소화하는 것입니다. 알고리즘은 반복적으로 작동하며 초기 파티션 선택은 결과 클러스터에 큰 영향을 줄 수 있습니다.

무작위 초기화 시 결과의 일관성이 떨어질 있습니다. 중심 초기화 방법을 사용하면 이러한 위험이 줄어듭니다. NUS Computing의 연구는 널리 사용되는 k-평균++, 무작위 초기화 등의 방법들을 설명하고 비교합니다.5

k-평균 ++

K-평균++은 초기 클러스터 중심의 선택을 최적화하는 k-평균 알고리즘입니다. 연구원 Arthur와 Vassilvitskii가 개발한 k-평균++는 최종 클러스터 할당의 품질을 향상시킵니다.6

k-평균++ 방법을 사용하여 초기화하는 첫 번째 단계는 데이터 세트에서 하나의 중심점을 선택하는 것입니다. 이후의 각 중심점에 대해 가장 가까운 클러스터 중심에서 각 데이터 포인트까지의 거리를 계산합니다. 후속 중심점은 포인트가 이전에 선택한 가장 가까운 중심점으로부터 비례 거리에 있을 가능성을 고려하여 선택됩니다. 이 프로세스는 선택한 수의 클러스터 센터가 초기화될 때까지 반복을 실행합니다.

다음은 초기화에 k-평균++ 방법을 사용하는 IBM Developer의 튜토리얼입니다.

최적의 클러스터 수 선택

k-평균 알고리즘은 최적의 클러스터 수에 도달할 때까지 반복하는 것이 이상적입니다. 최대 반복 횟수 전에 중심점이 수렴에 도달하면 반복이 종료됩니다.

엘보우 방법

최적의 클러스터 수를 달성하는 한 가지 방법은 엘보우 방법입니다. 엘보우 방법은 k-평균 클러스터링 알고리즘 내에서 최적의 클러스터 수를 찾기 위한 그래픽 방법입니다. 각 데이터 포인트와 클러스터 중심 사이의 유클리드 거리를 측정하고 WCSS(클러스터 내 제곱합)의 변화가 평준화되는 위치에 따라 클러스터 수를 선택합니다. 이 값은 클러스터 수에 대해 도표가 표현된 각 클러스터 내의 총 분산을 나타냅니다.7

엘보우 방법의 첫 번째 단계는 각 클러스터(k)에 대한 WCSS를 계산하는 것입니다. 그런 다음 WCSS 값은 y축을 따라 표현되고 클러스터 수는 x축에 표현됩니다. 클러스터 수가 증가하면 도표의 포인트가 일관된 패턴을 형성해야 합니다. 이 패턴에서 최적의 클러스터 수에 대한 범위를 생성합니다.8 클러스터 수를 결정할 때는 계산 비용을 고려해야 합니다. 클러스터 수가 많을수록 특히 대규모 데이터 세트에서 더 많은 처리 능력이 필요합니다.

이 방법은 특히 차원이 높거나 모양이 불규칙한 데이터 세트의 경우 반드시 최선의 방법은 아닙니다. 최적의 클러스터 수를 선택하기 위한 또 다른 방법은 실루엣 분석입니다.9

머신 러닝에서의 응용

k-평균 클러스터링 알고리즘은 거의 모든 분야와 산업에서 사용됩니다. 일반적으로 차원이 적고 숫자형이며 쉽게 분할할 수 있는 머신 러닝 데이터에 적용됩니다.

연구원들은 k-평균 클러스터링을 CNN 및 RNN과 같은 딥 러닝 방법과 통합하여 컴퓨팅 비전, NLP 및 기타 여러 영역과 같은 다양한 기계 학습 작업의 성능을 향상시켰습니다. 다음은 일반적인 k-평균 클러스터링 애플리케이션 목록입니다.

고객 세분화: 유사성을 반영한 공통 특성을 기준으로 회사 고객을 그룹으로 나누는 관행입니다. 이 전략을 통해 기업은 특정 광고 캠페인에 대해 특정 클러스터 또는 고객 그룹을 타기팅할 수 있습니다.

문서 분류: 문서에 다양한 클래스 또는 카테고리를 할당하는 절차입니다. 이 방법은 많은 조직에서 콘텐츠를 조정하는 데 사용되며 문서 분류기를 구축하려면 이 Watson Discover 설명서를 참조하세요.

이미지 분할: 디지털 이미지를 별개의 픽셀 세트로 나누는 컴퓨팅 비전 기술입니다. 이 연구에서는 의료 영상의 경계를 식별하는 데 도움이 되는 k-평균 모델을 사용하는 방법에 대해 자세히 설명합니다.10

추천 엔진: 웹 전반의 애플리케이션에서 추천 엔진을 사용합니다. 주성분 분석 및 k-평균 클러스터링 기술이 전자상거래 비즈니스를 위한 제품 추천을 구축하는 데 사용됩니다.11

Python으로 k-평균 모델 학습

실습을 위해 Python에서 watsonx.aiIBM Watson Studio를 사용하여 k-means 클러스터링을 수행하는 기본 사항을 설명하는 자습서를 확인하세요.

이 튜토리얼에서는 K-평균 클러스터링을 수행하는 scikit-learn(sklearn) 라이브러리의 모듈을 사용합니다. 이 모듈에는 클래스 매개변수로 조작되는 최적화 기술이 내장되어 있습니다. 모듈의 클래스는 다음과 같습니다.

class sklearn.cluster.KMeans(n_clusters=8*init='k-means++'n_init='auto'max_iter=300tol=0.0001verbose=0random_state=Nonecopy_x=Truealgorithm='lloyd')12

매개변수에는 형성할 클러스터의 수와 생성할 중심점의 수(n_clusters)가 포함됩니다. 초기화 방법에는 k-평균++와 무작위 두 가지를 사용할 수 있습니다. 또한 최대 반복 횟수를 설정하기 위한 속성도 포함되어 있습니다. 각 반복은 데이터 세트를 n_clustersparameter의 값으로 분할하는 것으로 시작됩니다.

해당 라이브러리는 테스트 데이터 세트를 생성하고 클러스터링을 수행합니다.

pandas를 pd로 가져오기 
sklearn 가져오기
matplotlib.pyplot을 plt로 가져오기
씨본(seaborn)을 SNS로 가져오기
numpy 가져오기

sklearn.cluster에서 KMeans 가져오기
sklearn.datasets에서 make_blobs 가져오기
sklearn.decomposition에서 PCA 가져오기
sklearn.preprocessing에서 StandardScaler 가져오기

장점 및 단점

장점

머신 러닝 애플리케이션에서 k-평균 클러스터링의 몇 가지 일반적인 이점은 다음과 같습니다.

단순성: k-평균 클러스터링은 이해하기 쉽고 실제로 적용하기도 쉽습니다. 가장 널리 사용되는 비지도형 머신 러닝 기법입니다.

신속: K-평균 클러스터링은 계산이 간단한 반복 접근 방식으로 설계되었습니다. k-평균 클러스터링 알고리즘은 트리와 같은 클러스터 구조를 구축하고 모든 데이터 포인트 간의 쌍별 거리를 계산해야 하는 계층적 클러스터링보다 빠릅니다.

확장성: k-평균은 대규모 데이터 세트로 쉽게 확장할 수 있으며 다양한 형태와 크기의 클러스터로 일반화할 수 있어 클러스터 분석에 이상적입니다. 계산 효율이 매우 높기 때문에 다른 방법에 비해 확장성이 뛰어나고 대규모 데이터 세트에 적합합니다.

단점

k-평균 클러스터링과 관련된 몇 가지 일반적인 문제는 다음과 같습니다.

입력 매개변수에 대한 의존성: K-평균 클러스터링은 적절하게 설정된 입력 매개변수에 따라 달라집니다. 의미 있는 클러스터 결과를 얻기 위해 적절한 중심점과 클러스터 수를 초기화하는 것이 필요합니다. 중심점 초기화가 잘못되면 실행 시간이 늘어나고 클러스터 할당 품질이 저하될 수 있습니다. 더 나은 클러스터링 결과와 더 빠른 수렴 시간을 위해 중심점 초기화 절차를 개선하기 위한 많은 연구가 진행되었습니다.

특정 데이터 세트에서 성능이 저하될 수 있음: K-평균은 데이터 세트에 크기가 비슷한 클러스터가 포함되어 있고 주목할 만한 이상치나 밀도 변동이 없을 때 효과적으로 수행됩니다. K-평균은 데이터 세트에 변형이 많거나 차원이 높은 경우 성능이 저하됩니다. 특정 데이터 세트 가정과 일치하지 않는 데이터로 인해 K-평균이 낮은 품질의 클러스터를 생성할 수 있습니다.13 예를 들어, 크기가 고르지 않은 군집은 중심을 더 큰 군집 쪽으로 기울일 수 있으며, 이로 인해 더 작은 군집 간에 편향 및 오분류가 발생할 수 있습니다. 이 문제를 해결하기 위해 Gaussian Mixture 노드와 같은 확률 모델을 사용하여 K-평균을 일반화할 수 있습니다.

중대한 이상값 영향: 이상값은 K-평균 클러스터링의 결과에 상당한 영향을 미칩니다. 서로 다른 클러스터는 멀리 떨어져 있어야 하지만 데이터 포인트가 왜곡될 정도로 멀리 떨어져서는 안 됩니다. k-평균을 적용하기 전에 데이터 가정을 고려하는 것이 중요합니다. k-평균은 클러스터의 값을 평균화하여 중심값을 결정하는 것을 목표로 하기 때문에 이상값에 특히 민감합니다. 민감도가 높기 때문에 이러한 이상값을 포함할 때 과적합이 발생하기 쉽습니다.

관련 솔루션

관련 솔루션

IBM watsonx.ai

AI 빌더를 위한 차세대 엔터프라이즈 스튜디오인 IBM watsonx.ai로 생성형 AI, 파운데이션 모델 및 머신 러닝 기능을 학습, 검증, 조정 및 배포하세요. 적은 데이터로 짧은 시간 내에 AI 애플리케이션을 구축하세요.

watsonx.ai에 대해 알아보기
인공 지능 솔루션

업계 최고의 AI 전문성과 솔루션 포트폴리오를 보유한 IBM과 함께 AI를 비즈니스에 활용하세요.

AI 솔루션 살펴보기
AI 컨설팅 및 서비스

AI 추가를 통해 중요한 워크플로와 운영을 혁신함으로써 경험, 실시간 의사 결정 및 비즈니스 가치를 극대화합니다.

AI 서비스 살펴보기
다음 단계 안내

AI 개발 라이프사이클 전반에 걸친 기능에 원스톱으로 액세스하세요. 사용자 친화적인 인터페이스, 워크플로, 업계 표준 API 및 SDK에 대한 액세스를 통해 강력한 AI 솔루션을 제작할 수 있습니다.

watsonx.ai 살펴보기 라이브 데모 예약하기
각주

1 Todd K. Moon, "The Expectation Maximization Algorithm, " IEE Signal Processing Magazine, https://ieeexplore.ieee.org/document/543975 (ibm.com 외부 링크)

2 Kevin Arvai, "K-Means Clustering in Python: A Practical Guide," https://realpython.com/k-means-clustering-python/#:~:text=Understanding%20the%20K%2DMeans%20Algorithm,-Conventional%20k%2Dmeans&text=The%20quality%20of%20the%20cluster,point%20to%20its%20closest%20centroid.(ibm.com 외부 링크)

3 "Clustering: K-Means," https://www.codecademy.com/learn/dspath-unsupervised/modules/dspath-clustering/cheatsheet (ibm.com 외부 링크)

4 "Dunn Index," https://ruivieira.dev/dunn-index.html (ibm.com 외부 링크)

5 Xiangyuan, Siyuan, Hao, "A survey on k-means initialization methods," https://www.comp.nus.edu.sg/~arnab/randalg20/HLW.pdf (ibm.com 외부 링크)

6 Arthur, Vassilvitskii, "k-means++: The Advantages of Careful Seeding, " Standford, https://theory.stanford.edu/~sergei/papers/kMeansPP-soda.pdf (ibm.com 외부 링크)

7 Gutierrez, "Unsupervised Learning: Evaluating Clusters," https://opendatascience.com/unsupervised-learning-evaluating-clusters/ (링크가 ibm.com 외부에 있습니다)

8 "K-means clustering using Python on IBM watsonx.ai," https://developer.ibm.com/tutorials/awb-k-means-clustering-in-python/ , step 4(ibm.com 외부 링크)

9 Shutaywi, Kachouie, "Silhouette Analysis for Performance Evaluation in Machine Learning with Applications in Clustering," June 2021, https://www.mdpi.com/1099-4300/23/6/759(ibm.com 외부 링크)

10 Dhanachandra, Manglem, Chanu, "Image Segmentation Using K-means Clustering Algorithm and Subtractive Clustering Algorithm," ScienceDirect Vol 54, pgs 764-771, https://www.sciencedirect.com/science/article/pii/S1877050915014143 (ibm.com 외부 링크)

11 Bagus Mulyawan 외 다수, "Recommendation Product Based on Customer Categorization with K-Means Clustering Method," 2019 IOP Conf. Ser.: Mater. Sci. Eng. 508 012123 https://iopscience.iop.org/article/10.1088/1757-899X/508/1/012123/pdf#:~:text=The%20K%2DMeans%20algorithm%20is,group%20customer%20based%20on%20attributes. (ibm.com 외부 링크)

12 scikit-learn, https://github.com/scikit-learn/scikit-learn/blob/5491dc695/sklearn/cluster/_kmeans.py#L1193 (ibm.com 외부 링크)

13 "Demonstration of k-means assumptions," https://scikit-learn.org/stable/auto_examples/cluster/plot_kmeans_assumptions.html(ibm.com 외부 링크)