본문 바로가기
Data Analysis/Spotfire

K-means Clustering

by 불탄오징어 2019. 10. 10.
반응형

 

 

5-2. K-means Clustering


K-means Clustering은 분류분석 방법 중 하나로 오래됐지만 매우 유용한 통계분석 방법 중 하나입니다. 익히 잘 알려진데로 Unsupervised learning 방법 중 하나이며 데이터와 나눌 군집 갯수만 주어지면 데이터간 거리를 활용하여 데이터를 분류해냅니다. 이번에도 잘알려진 Iris 데이터를 활용하여 진행하겠습니다.

 

 해당 데이터를 Spotfire로 가져옵니다.

 

 

Spotfire에서 K-means Clustering을 할 때 선 조건이 있습니다. 특정 차트를 그려야하는데 바로 라인차트가 필요합니다. 라인차트가 없는 상태에서 K-means Clustering을 실행하면 다음과 같은 메시지가 뜹니다.

 

 

 

이유는 생각해보면 당연한데 Spotfire는 기본적으로 시각화 툴이며 시각화하여 표현하는 것을 기본으로 하고 있습니다. K-means Clustering을 실행할 때 투입 변수가 2개 또는 3개라면 각각 산점도, 3d 산점도로 표현할 수 있겠지만 그 이상의 경우는 표현이 불가능합니다. 그래서 라인차트를 활용하여 얼마든지 투입변수를 넣더라고 시각적으로 표현할 수 있습니다.

 

 먼저 Line Chart룰 준비합니다.

 

 

  • X축은 (Column Names)를 선택
  • Y축은 투입변수들을 모두 넣는다. 단 주의할 점은 집단을 나누고자는 대상이 행인지 특정 집단인지가 중요한데 여기서는 각 데이터의 행에 대해서 군집 분석을 진행하는 기준이다. 고로 집계함수가 들어가는 것에 대해서 주의가 필요함, 여기서는 집계함수 없이 4개 변수를 지정함
  • Color By, 또는 Line By에 (Row number)를 선택한다.

 

위와 같이 그리게 되면 하나의 행이 하나의 데이터를 표현한다. 이 상태에서 상단 Tool - K-means Clustering을 실행합니다.

 

 

  • Result column options : K-means Clustering 결과를 받을 칼럼을 정한다. 기존 칼럼으로 할 지 새칼럼을 만들지
  • Distance measure : 각 데이터간 연관성을 파악하기 위해 거리를 측정하는데 Correlation similarity 또는 Euclidean distance 중에 선택 가능
  • Max number of clusters : 최대 분류 군집 갯수

 

기본설정을 그대로 두고 실행을 합니다.

 

 

지정한대로 총 9개 군집으로 분류가 되었습니다. 그럼 Iris 는 총 3개 품종이 있으니 3개로 군집을 진행해보겠습니다.

 

 

이번에는 최대 군집갯수 3개로 하고 기존 Column을 그대로 쓰는 것으로 설정한 후 실행을 하면 다음과 같습니다.

 

 

그러면 실제 품종과 맞는지 비교를 해보겠습니다.

 

 

우측에 교차표를 만들었습니다. X 축은 (row count), Y 축은 K-means Clustering, Species 로 입력했습니다. 각각 군집을 선택해보면

 

3개가 오분류됨
모두 분류됨
3개가 오분류됨

 

1,3번째 그룹에서 오분류 케이스가 존재하지만 매우 양호한 결과라 할 수 있습니다.

댓글