본문 바로가기

딥러닝(Deep Learning)/컴퓨터 비전

k-mean Clustering(feat. 군집화)

군집화(Clustering) : 통계 분석 기법 준 하나로써, 데이터를 유사한 특성을 가진 그룹 또는 군집으로 나누는 기술입니다.

각 instance는 2개의 feature로 구성

 

STEP 1. K의 개수와 Centroid를 정함

k의 개수 : Cluster의 개수

Centroid : 각 군집에 포함된 데이터의 중앙값(k-mean clustering에서는 평균을 이용)

맨 처음에는 [랜덤]으로 Centroid값을 정한다. 

이 예시에서는 k=2개의 예시이다. 

랜덤하게 2개의 Centroid가 정해지면, Centroid를 제외한 모든 좌표에 대한 Distance를 계산을 한다. 

Distance Matrix를 기준으로 각 Sample(Instance)는 어느 Centroid에 더 가까운지를 판단하여 만약 Centroid1에 더 가까우

면 해당 데이터는 Centroid1과 같은 Cluster가 된다. 

위 예제에서는 Cluster1 = {A,D,E,G,F}, Cluster2  = {B,C,H}로 나뉜다. 

(아래 그림들 참조)

 

 

그런데, 여기서 의문이 든다. 

우리는 SampleA와 SampleB를 최초로 랜덤하게 Centroid로 선택을 하여서, 최종적으로 2 개의 Cluster를 만들어 냈다. 

근데, 과연 이게 최적의 Clustering이라고 말을 할 수가 있을까?

그렇지는 않을 것이다. 

그리고하여 최초로 생성한 각 Cluster에 포함된 Sample들의 {Var1, Var2}의 평균값(mean)을 계산하여 

위와 같이 새로운 Centroid의 좌표를 계산을 한다. 

위 그림처럼 새롭게 Centroid가 구해진면, 위 일련의 과정을 계속해서 반복을 하면 된다. 

언제까지??? 

생성된 2개의 각각의 Cluster에 포함된 데이터들에 변화가 없을 때까지!!!!

 

이쯤되면 아래와 같은 의문점이 들 것이다. 

이것과 관련된 설명은 아래의 유튜브 강의를 참조하자!

https://www.youtube.com/watch?v=8zB-_LrAraw