숫자

군집 분석 (1)

아이비팝2 2023. 4. 15. 16:39

군집 분석

1. 개요

군집 분석(cluster analysis)은 레코드에 포함된 변수들을 기초로 하여 유사한 레코드를 가진 그룹 또는 군집들을 만들고자 할 때 사용되는 분석 방법이다. 군집 분석의 주요 개념은 분석의 목적에 맞도록 군집들을 찾아내어 이를 특정 짓는 것이다.

 

이러한 개념은 여러 영역에서 적용되어 왔다. 

생물학자들은 종에 대한 계층적 분류를 위해 상위 및 하위 집단을 광범위하게 활용한다. 

화학분야에서 군집의 계념을 괄목하게 성공시킨 것은 멘델레예프의 원소 주기율표를 들 수 있다.

마케팅에서는 시장 세분화(market segmentation)을 위해서 군집 분석을 많이 활용한다. 이 경우 고객은 인구통계 및 거래내역 정보를 기반으로 세분화되고, 이 세분화 영역에 맞춰 시장 세분화 전략이 수립된다.

 

금융분야의 군집분석은 균형 포트폴리오를 만들 때 적용될 수 있다. 예를 들어 다양한 투자기회에 대한 데이터가 있다면 수익, 가격변동률, 베타와 같은 재무성과 변수와 산업 및 시장의 자본총액과 같은 지표들을 기반으로 군집들을 찾을 수 있다. 

 

일반적으로 군집을 만드는 데 사용되는 기본데이터는 변수를 나타내는 열과 레코드를 나타내는 행으로 이루어진 표로 구성된다. 이 데이터의 목적은 유사한 레코드들이 같은 그룹 안에 포함되도록 레코드의 그룹을 만드는 것이다. 군집의 수는 사전에 미리 정해지거나 데이터에 의해서 자동적으로 결정될 수 있다.

 

2. 일반적인 군집화 알고리즘

n개의 레코드들을 가진 데이터 집합에 대한 일반적인 군집화 알고리즘은 다음과 같이 2가지 유형이 있다.

1) 계층적 방법 (hierarchical methods)

이는 병합이나 분할방법이 될 수 있다. 병합방법은 n개의 군집들을 가지고 시작해서 최종적으로 하나의 군집이 남을 때까지 순차적으로 유사한 군집들을 병합한다. 분할방법은 이와 반대방향으로 군집화 한다. 이때 모든 레코드들을 포함하고 있는 하나의 군집에서 출발한다. 계층적 방법은 분석의 목적이 군집들을 자연적은 계층 구조로 정렬하고자 할 때 특히 유용하다.

2) 비계층적 방법 (non-hierarchical methods)

k-means 방법과 같은 것이다. 미리 군집들의 수를 결정한 후에 사용되는 방법이다.

이 방법은 레코드들을 각각 정해진 군집에 할당하는 방법이다. 이러한 방법들은 일반적으로 계산량이 많이 않기 때문에 대량의 데이터베이스에서 유용하다.

 

3. 두 레코드 간의 거리 계산

레코드 i 와 j 사이는 거리척도 또는 비유사성 척도는 d-ij로 표시한다.

레코드 i 는 p개의 변수에 대한 벡터를 가지며

레코드 j 도 변수에 대한 벡터를 가진다.

거리는 여러 가지 방법으로 정의될 수 있지만, 일반적으로 다음과 같은 거리 특성을 충족시켜야 한다.

- 양의 성질 (non-negative)

- 자기 근사성 (self-proximity)

- 대칭성 (symmetry)

- 삼각 부등성 (triangle inequality)

 

1) 수치형 척도의 정규화

계산된 척도는 각 변수의 단위크기(scale)에 영향을 받기 때문에, 값이 큰 변소는 총거리에 매우 큰 영향을 주게 된다. 따라서 유클리드 거리를 구하기 이전에 일반적으로 연속형 값들을 정규화(normalize) 또는 표준화(standardize)하는 단계를 거치게 된다. 정규화는 모든 측정치들을 같은 단위로 변환하는 것이다. 측정치들을 정규화한다는 것은 측정치에서 평균을 뺀 후, 표준편차로 나튼 것을 의미한다.

 

2) 수치형 데이터의 다른 거리 척도

군집분석에서 거리척도의 다른 선택의 매우 중요한 역할을 한다. 이에 대한 주요 가이드라인은 적용분에 따라 달라진다. 

정확하게 무엇이 측정되고 있는가, 서로 다른 레코드을이 어떻게 관련되어 있는가, 어떤 척도(수치형, 순서형 또는 명목형)로 처리해야 하는가, 극단치들은 있는가 등을 고려해야 한다. 그리고 분석목적에 따라서 소수의 측정항목집합으로 군집들을 구분할 것인가, 다소 영향력이 있는 다수의 측정항목을 사용하여 군집을 구분해야 하는가 등을 고려할 수 있다.

 

유클리드 거리는 가장 널리 사용되는 거리 척도이다.

하지만 이 척도에서 반드시 기억해야 할 3가지 특징이 있다. 

첫째 유킬리드 거리는 큰 값의 영향을 많이 받는다. 변수의 특정단위를 바꾸는 것은 결과에 큰 영향을 줄 수 있다. 이러한 경우는 데이터를 표준화시키는 것이 일반적인 해법이다. 그러나 서로 다른 가충치를 주는 문제에 대해서는 어떤 변수에 더 의존하고 어떤 변수에 덜 의존해서 군집화 할 것인지 고려해야 한다. 

둘째, 유클리드 거리는 측정항목들 사이의 관계가 완전히 무시된다는 것이다. 그래서 만약 측정항목들이 실제 서로 강한 상관관계가 있다면, 다른 형태의 거리척도를 선택하는 것이 나을 수 있다.

셋째, 유클리드 거리는 극단치에 민감하다. 데이터가 극단 치를 포함하고 있고, 그것을 제거할 수 없다면 좀 더 강건한 거리를 사용하는 것이 바람직하다.

 

거리 측정 방식에는 다음 같은 여러가지가 있다.

- 유클리디안 방법

- 상관관계기반 유사성 (correlation-based) : 이 거리는 때로는 레코드 간의 비유사성을 측정하는 거리보다는 유사성을 측정하는 데 더 가까우며 사용하기가 편리하다. 대표적인 유사성 척도로는 피어슨 상관계수가 있다.

- 통계적 거리 : 마할라노비스 거리로 불린다. 이 측정기준은 변수들 사이의 상관관계를 고려하고 있다. 이 측정기준은 다른 변수들과 높은 상관관계를 갖는 변수들은 다른 변수들만큼 영향력이 없다.

- 맨하탄 거리 또는 시티 블록 거리 : 이 거리는 차이에 대한 제곱이 아니라 차이에 대한 절댓값을 고려한다.

- 최대좌표거리 : 이 거리는 단순히 가장 멀리 떨아진 레코드를 찾는 것이다.

 

3) 범주형 데이터에 대한 거리척도

이진변수를 가진 사례의 경우에는, 거리 척도보다는 유사성 척도를 사용하는 것이 직관적이다.

이러한 경우에 유용한 유사성 척도는 다음과 같다.

- 매칭 계수 (matching coefficient)

- 자카드 계수 (Jaquard's coefficient)

 

4) 혼합형 데이터에 대한 거리척도

변수들이 혼합형 일 경우는 Gower가 제안한 유사도 계수(similarity coefficient)는 매우 유용하다. 이는 각 변수를 [0, 1] 크기의 값으로 조정한 후, 각 변수에 대해 거리를 계산하고 이를 가장평균한 값이다.

 

 

 

k-means clustering [그림 출처 : medium]