AI 101
K-νκ· ν΄λ¬μ€ν°λ§μ΄λ?

K-평균 클러스터링은 무감독 학습 알고리즘 중 하나로, 무감독 학습 알고리즘 중에서 가장 널리 사용되는 알고리즘 중 하나입니다. K-평균 클러스터링은 어떻게 작동할까요?
간단한答案은 K-평균 클러스터링이 원하는 클래스 수에 대한 참조 점(centroid)을 생성하고, 데이터 포인트를 가장 가까운 참조 점에 따라 클래스 클러스터에 할당함으로써 작동한다는 것입니다. 이것이 K-평균 클러스터링의 간단한 정의입니다. 이제 K-평균 클러스터링을 더 깊이 이해해 보겠습니다.
클러스터링의 정의
K-평균 클러스터링 알고리즘을 살펴보기 전에, 클러스터링의 일반적인 정의를 살펴보겠습니다.
클러스터는 단순히 항목의 그룹입니다. 클러스터링은 항목을 이러한 그룹으로 분류하는 것입니다. 데이터 과학의 관점에서, 클러스터링 알고리즘은 두 가지를 수행하려고 합니다:
- 클러스터 내의 모든 데이터 포인트가 서로 가능한 한 유사하도록 합니다.
- 다른 클러스터 내의 모든 데이터 포인트가 서로 가능한 한 다르도록 합니다.
클러스터링 알고리즘은 항목을 유사성의 기준에 따라 그룹으로 분류합니다. 이것은 종종 다양한 그룹의 “중심”을 찾는 것으로 수행됩니다. 클러스터링 알고리즘은 여러 가지가 있지만, 모든 클러스터링 알고리즘의 목표는 동일합니다. 즉, 데이터셋에 내재된 그룹을 결정하는 것입니다.
K-평균 클러스터링
K-평균 클러스터링은 가장 오래된 클러스터링 알고리즘 중 하나로, 벡터 양자화를 기반으로 작동합니다. 공간의 한 점이 원점으로 선택되고, 원점에서 데이터셋의 모든 데이터 포인트까지 벡터를 그립니다.
일반적으로 K-평균 클러스터링은 다섯 단계로 나눌 수 있습니다:
- 인스턴스를 서브셋으로 나눕니다. 서브셋의 수는 K와 같습니다.
- 새로 생성된 클러스터 파티션의 평균 점/중심을 찾습니다.
- 이 중심을 기준으로 각 점을 특정 클러스터에 할당합니다.
- 각 점에서 중심까지의 거리를 계산하고, 점을 중심에서 최소 거리에 있는 클러스터에 할당합니다.
- 점이 클러스터에 할당된 후, 클러스터의 새로운 중심을 찾습니다.
이 단계는 트레이닝이 완료될 때까지 반복됩니다.

초기 단계에서, 중심은 데이터 포인트 중간에 위치합니다.
사진: Weston.pace via 위키미디어 공용, GNU 자유 문서 라이선스 (https://commons.wikimedia.org/wiki/File:K_Means_Example_Step_1.svg)
대안으로, 중심이 위치한 후, K-평균 클러스터링을 데이터 포인트를 레이블링하고 중심을 업데이트하는 두 단계 사이를 교대로 반복하는 것으로 생각할 수 있습니다.

두 번째 단계에서, 유클리드 거리와 같은 거리 측정값을 사용하여 각 점이 어느 중심에 가장 가까운지 계산하고, 점을 해당 중심의 클래스에 할당합니다. 사진: Weston.pace via 위키미디어 공용, GNU 자유 문서 라이선스 (https://commons.wikimedia.org/wiki/File:K_Means_Example_Step_2.svg)
데이터 포인트 레이블링 단계에서, 각 데이터 포인트는 가장 가까운 중심에 속하는 클러스터에 레이블이 지정됩니다. 가장 가까운 중심은 일반적으로 제곱 유클리드 거리를 사용하여 결정됩니다. 그러나 다른 거리 측정값인 맨하탄 거리, 코사인, 자카드 거리 등을 사용할 수도 있습니다.

세 번째 단계에서, 중심은 클러스터 내의 모든 데이터 포인트의 평균 위치로 이동됩니다. 그러면 클래스가 다시 할당됩니다. 사진: Weston.pace via 위키미디어 공용, CC SA 3.0 (https://commons.wikimedia.org/wiki/File:K_Means_Example_Step_3.svg)
중심 업데이트 단계에서, 중심은 클러스터 내의 모든 데이터 포인트의 평균 거리를 계산하여 결정됩니다.
K의 올바른 값을 선택하는 방법
K-평균 클러스터링은 무감독 알고리즘이며, 클래스 수를 미리 알 수 없기 때문에, K의 올바른 값을 어떻게 결정할 수 있을까요?
K의 올바른 값을 선택하는 한 가지 방법은 “엘보우 기법“입니다. 엘보우 기법은 다양한 K 값에 대해 K-평균 클러스터링 알고리즘을 실행하고, 정확도 측정값(일반적으로 제곱 오차 합)을 사용하여 어느 K 값이 가장 좋은 결과를 내는지 결정하는 것입니다. 제곱 오차 합은 클러스터의 중심과 클러스터 내의 데이터 포인트 사이의 평균 거리를 계산하여 결정됩니다.
엘보우 기법이라는 용어는 K 값에 대한 제곱 오차 합을 플로팅할 때, 결과 선 그래프가 종종 “엘보우” 모양을 띠기 때문에 사용됩니다. 즉, 제곱 오차 합은 초기의 몇몇 K 값에 대해 급격히 감소하지만, 이후에는 평탄해집니다. 이러한 경우, 엘보우에 위치한 K 값이 최적의 K 값입니다. 왜냐하면 이 값 이후에는 급격한 개선이 없기 때문입니다.
미니 배치 K-평균 클러스터링
데이터셋이 커질수록 계산 시간도 증가합니다. 기본 K-평균 클러스터링은 대규모 데이터셋에서 실행될 때 오랜 시간이 걸릴 수 있습니다. 따라서 K-평균 클러스터링의 공간적 및 시간적 비용을 줄이기 위해 몇 가지 수정이 이루어졌습니다.
미니 배치 K-평균 클러스터링은 K-평균 클러스터링의 변형으로, 고려하는 데이터셋의 크기가 제한됩니다. 일반적인 K-평균 클러스터링은 전체 데이터셋/배치를 한 번에 처리하지만, 미니 배치 K-평균 클러스터링은 데이터셋을 서브셋으로 나눕니다. 미니 배치는 전체 데이터셋에서 임의로 샘플링되며, 각 반복에서 새로운 임의 샘플이 선택되어 중심의 위치를 업데이트하는 데 사용됩니다.
미니 배치 K-평균 클러스터링에서, 클러스터는 미니 배치 값과 학습률의 조합으로 업데이트됩니다. 학습률은 반복次数에 따라 감소하며, 클러스터에 할당된 데이터 포인트 수의 역수입니다. 학습률을 감소시키면 새로운 데이터의 영향이 감소하며, 클러스터가 수렴합니다. 즉, 여러 반복 후에 클러스터에 변경이 없게 됩니다.
미니 배치 K-평균 클러스터링의 효과에 대한 연구 결과는 계산 시간을 줄일 수 있지만, 클러스터의 품질에 약간의 트레이드오프가 있음을 시사합니다.
K-평균 클러스터링의 응용
K-평균 클러스터링은 데이터 포인트를 별개의 그룹/클래스로 세분화할 수 있는 모든 상황에서 안전하게 사용할 수 있습니다. 여기에는 몇 가지 예가 있습니다.
K-평균 클러스터링은 문서 분류에 적용될 수 있습니다. 문서를 주제, 태그, 단어 사용, 메타데이터 및 기타 문서 특징과 같은 특징에 따라 그룹화할 수 있습니다. 또한 사용자의 활동 패턴(게시물 및 댓글 등)을 기준으로 사용자를 봇 또는 비봇으로 분류하는 데 사용할 수 있습니다. K-평균 클러스터링은 또한 환자의 건강 상태를 모니터링할 때, 동반 질환, 연령, 환자 기록 등과 같은 특징에 따라 사람들을 그룹화하는 데 사용할 수 있습니다.
K-평균 클러스터링은 또한 더 개방적인 작업인 추천 시스템 생성에 사용될 수 있습니다. 넷플릭스와 같은 시스템의 사용자는 시청 패턴에 따라 그룹화되어 유사한 콘텐츠를 추천받을 수 있습니다. K-평균 클러스터링은 이상치 감지 작업에 사용될 수 있습니다. 즉, 사기 또는 결함이 있는 항목과 같은 잠재적인 사례를 강조 표시할 수 있습니다.












