군집 분석이란?
군집 분석은 데이터들을 군집화하여 데이터의 특징을 탐색하는 데이터 분석 기법이다.
n개의 데이터 간의 유사성을 측정하고, 서로 유사한 데이터끼리 묶어나가는 과정을 거친다.
즉 군집내 유사성을 높이고, 군집간 유사성을 낮추는 방식으로 군집화를 하는것이 목적이다.
k means algorithm
unsupervised learning(unlabeld data)의 대표적 예시인 알고리즘이다.
작동 방식은 다음과 같다.
아래 그림은 위키피디아에서 설명하는 k means algorithm이다.
R에선 kmeans()
라는 함수를 제공한다. 이를 통해서 k-means를 적용할 수 있다.
아래 코드에서는 R
에서 제공하는 붓꽃의 특징을 관찰한 iris
데이터셋을 이용했다.
붓꽃의 꽃받침 길이, 넓이를 이용해서 kmeans를 적용했다.
> head(iris, 2) # iris 데이터의 앞부분 2개 행을 본다.
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
> data = iris[, 1 : 2] # Petal.Length, Petal.Width 만을 가지는 데이터로 분리
> data_kmeans = kmeans(d, centers = 3) # K means 실행
> clr = data_kmeans$cluster # kmeans는 각 데이터에 대해서 cluster(군집) 번호를 부여한다.
> shape = as.numeric(iris$Species) # iris 데이터의 Species 속성을 점의 모양으로 한다.
> plot(data, col=clr, pch=shape) # 분리한 데이터를 kmean로 구한 특징을 입혀 표현한다.