데이터 마이닝 테크닉 - 클러스터링 알고리즘 탐구
클러스터링 알고리즘 탐구

클러스터링 기법은 크게 분할(partitioning) 접근과 계층적(hierarchical) 접근으로 나눌 수 있습니다. 분할 접근은 범주 함수를 최적화시키는 K개의 분할 영역을 결정해 나가는 방법으로 유클리드 거리(euclidean distance) 측정법에 기반합니다. 숫자 속성(numeric attribute) 데이터를 군집화하는데 쓰이는 가장 오래되고 잘 알려진 파티션 알고리즘 중에 K-평균(K-means) 알고리즘이라는 것이 있습니다. 이 알고리즘을 사용하려면 몇 개의 그룹으로 나누기 원하는지 K를 입력해야 합니다. 그러면 알고리즘은 일단 K개의 평균점을 지정하고 모든 데이터를 하나씩 보면서 가장 가까운 평균점에 해당되는 그룹에 할당합니다. 그 후에 다시 평균점들을 조금씩 바꾸어 나가면서 데이터를 가까운 그룹에 재할당합니다. 이 과정은 군집 상태를 나타내는 척도 함수가 더 이상 변하지 않을 때까지 반복되며 더 이상 변하지 않게 되면 그 상태의 그룹들을 군집화의 결과로 정합니다.
계층적 접근은 처음에 각각의 데이터 점을 하나의 클러스터로 설정한 후 이들 쌍 간의 거리를 기반으로 하여 분할, 합병해 나가는 상향식(bottom-up) 방식으로 모든 점들이 하나의 대형 클러스터에 속하게 될 때까지 그 히스토리 정보를 유지해 나가게 됩니다. 이것은 agglomerative hierarchical clustering이라 하며 ‘가까운’ 객체끼리 군집화시키는 방법입니다. 이 알고리즘에서는 우선 모든 n개의 데이터가 n개의 서로 다른 그룹이라 가정한 후에 그룹간의 유사성(similarity)을 보고 가장 유사한 두 개의 그룹을 합병해(merge) 그룹 수를 줄여가는 과정을 전제 그룹 수가 K개가 될 때까지 반복함으로써 K개의 그룹을 찾아냅니다. 또한 군집의 병합 또는 분리되는 과정은 이차원 도면의 Dendrogram을 사용하여 간략히 표현되며 군집화 과정에서 어떤 개체가 일단 다른 군집에 속하면 다시는 다른 군집에 속하지 못합니다.

클러스터링 알고리즘에서 사용하는 기본적인 용어와 전제 조건, 그리고 표기 방법에 대해서 정리해 보겠습니다. 일반적으로 p개의 변수를 서로 다른 두 개체 Xi와 Xj를 각각 다음과 같이 표현할 경우 다음과 같습니다.

Xi = (Xi1, Xi2, …, Xip)
Xj = (Xj 1, Xj 2, …, Xj p)

두 개체 사이의 거리 dij는 dij = d(Xi, Xj )으로 표현하며 다음의 조건을 만족합니다.

dij ≥ 0, dij = 0
dij = dji
dik + djk ≥ dij

예를 들어 데이터가 <표 3>과 같고 클러스터의 수 K=2를 발견하기 위해서 클러스터링 기법을 적용해 보겠습니다. 이때 유사성을 나타내는 함수는 두 점간의 Euclidean 거리로 사용하면 ID 1과 ID 2의 거리는 다음과 같이 계산되며 각 점들의 거리는 <표 4>와 같습니다.


<표 3> 수입과 명품 선호도 데이터

<표 4> 각 개체 사이의 거리

이때 ID 4와 ID 5가 가장 거리가 가깝기 때문에 <그림 3>과 같이 먼저 그룹화됩니다.
생성된 군집과 각 개체간의 거리를 구하기 위해서 첫 번째 군집에 속한 임의의 두 개체와 아직 군집에 속하지 않은 각 개체 사이의 거리 중 최단거리로 군집과 개체간의 유사성을 결정하는 최단 연결법을 적용하여 거리를 구하면 다음과 같습니다.


<그림 3> 첫 번째 군집 생성

d {(C1, C2)} = min { d (x, y)|x ∈ C1, y ∈ C2 }
d {(1), (4, 5)} = min { d14, d15 } = d14 = 61.0
d {(2), (4, 5)} = min { d24, d25 } = d24 = 42.4
d {(3), (4, 5)} = min { d34, d35 } = d34 = 18.6

즉, <표 5>에서 그룹화된 (4, 5)는 ID 3과 거리가 가장 가깝기 때문에 <그림 4>와 같이 (3, 4, 5)로 그룹화됩니다.
생성된 군집과 각 개체간의 거리를 다시 최단 연결법을 적용하여 거리를 구하면 다음과 같습니다.


<표 5> 첫 번째 군집과 개체 사이의 거리

<그림 4> 두 번째 군집 생성

d {(1), (3, 4, 5)} = min { d13, d14, d15 } = d14 = 61.0
d {(2), (3, 4, 5)} = min { d23, d24, d25 } = d24 = 42.4

즉, <표 6>에서 보면 ID 1과 ID 3이 거리가 가장 가깝기 때문에 <그림 5>와 같이 그룹화되며 이런 방식으로 남아 있는 그룹의 개수가 K일 때까지 반복합니다. 여기서는 초기 설정한 군집의 수 K=2를 만족하므로 클러스터링 분석을 마칩니다. 이것은 <그림 6>과 같이 Dendrogram으로 표현됩니다.


<표 6> 두 번째 군집과 개체 사이의 거리

<그림 5> 세 번째 군집 생성

<그림 6> 군집 생성 Dendrogram

이 알고리즘의 장점 중 하나는 군집화를 마칠 때까지의 과정이 트리 구조를 가지고 있어 drill down하거나 drill up하면서 어느 단계에서 군집화를 멈추는 것이 가장 잘 된 군집화인지를 사용자가 모두 확인해 보고 가장 좋다고 생각되는 것을 선택할 수 있다는 것입니다. 일반적으로 다차원 데이터를 군집화하기 위해 유사성을 계산할 때 여러 가지 함수를 쓸 수 있습니다. Euclidean 거리, Mahalanobis 거리, Manhattan 거리, Minkowski 거리 등 여러 가지가 있는데 그 중에 어떤 것을 사용해 군집화를 하느냐에 따라 다른 특성을 갖는 군집화가 이뤄집니다.
지금까지는 주로 숫자 속성을 가진 데이터의 군집화 알고리즘을 설명했는데 범주형 속성의 경우 거리라는 개념의 적용이 쉽지 않습니다. 즉 범주형 속성의 경우 X ≠ Y는 알 수 있으나 X > Y 혹은 X < Y는 알 수 없습니다. 그래서 일반적으로 범주형 변수로 측정되는 두 개체 사이의 거리는 두 개체가 서로 다른 범주에 속한 횟수를 이용합니다. 예를 들면 <표 7>과 같이 성별(sex), 직업(job), 거주지역(address) 같은 범주형 데이터가 있다고 가정합니다. 이 경우 ID 1과 ID 2 사이의 거리는 2(불일치수=2), ID 1과 ID 3 사이의 거리는 1(불일치수=1), ID 2과 ID 3 사이의 거리는 3(불일치수=3)이 됩니다. 그러나 속성이 연속형과 범주형이 혼합되어 있을 때는 이와 같은 방법은 더 이상 유용하지 않습니다. 따라서 일반적인 클러스터링 알고리즘에서는 최소한 순서형 범주를 갖는 이산형 변수까지를 분석대상으로 포함하는 경우가 많습니다. 클러스터링 알고리즘은 이렇게 다양한 다차원 데이터의 분포 상태나 패턴 등을 효율적으로 찾아내기 위한 방안과 데이터베이스 지향적인 제약 사항들(제한된 메모리 양, I/O 시간 최소화 등)을 해결하기 위해서 계속 연구되고 있습니다.


<표 7> 범주형 변수 데이터

계층적 클러스터링의 군집간 거리 계산법
◆ 최단 연결법(Single Linkage Method)
군집 U와 군집 V 사이의 거리 dUV를 각 군집에 속하는 임의의 두 개체들 사이의 거리 중 최단거리로 정의하여 가장 유사성이 큰 군집을 묶어 나가는 방법

◆ 최장 연결법(Complete Linkage Method)
군집 U와 군집 V 사이의 거리 dUV를 각 군집에 속하는 임의의 두 개체들 사이의 거리 중 최장거리로 정의하여 가장 유사성이 큰 군집을 묶어 나가는 방법

◆ 평균 연결법(Average Linkage Method)
군집 U와 군집 V 사이의 거리 dUV를 각 군집에 속하는 모든 개체들의 평균거리로 정의하여 가장 유사성이 큰 군집을 묶어 나가는 방법

◆ 중심 연결법(Centroid Linkage Method)
군집 U의 중심점과 군집 V의 중심점 사이의 거리를 두 군집 사이의 거리로 정의하여 가장 유사성이 큰 군집을 묶어 나가는 방법

◆ 중위수 연결법(Median Linkage Method)
군집 U와 군집 V 사이의 거리 dUV를 각 군집에 속하는 임의의 두 개체들 평균을 합하여 2로 나눈 값(군집의 크기를 고려하지 않은 단순평균)을 근간으로 정의하여 가장 유사성이 큰 군집을 묶어 나가는 방법

◆ Ward의 방법
군집 U와 군집 V를 묶을 때 생기는 새로운 군집 i에 속해 있는 객체들의 오차 제곱합을 ESSi라고 하고 전체 군집의 오차 제곱합을 ESS = ∑ESSi 라고 할 때 새로운 군집으로 인하여 파생되는 ESS의 증가량을 두 군집 사이의 거리로 정의하여 가장 유사성이 큰 군집을 묶어 나가는 방법


<그림 7> 군집간 거리 계산 도해

by 쿠리다쿠리 2010. 4. 19. 02:53
1. 유사도 정의
군집 분석에서 상사성이 높은 개체(유전자 혹은 환자)들은 같은 군집(발현 양상이 비슷한 유전자들 혹은 같은 종류의 암 환자)에 포함시키고, 상대적 상사성이 낮은 개체(발현 양상이 다르거나 다른 종류의 암 환자)들은 서로 다른 군집에 포함시킬 수 있도록 해주는 상사성이나 비상사성을 측정하는 유사도 정의가 필요 한다. 이러한 유사도 정의에 주로 사용되는 것은 거리인데 대표적으로 사용되는 거리 척도에는 Euclidean 거리이다.

Euclidean distance

한편 Euclidean 거리는 사용된 척도에 따라서 거리 순위에 상당한 영향을 미치게 된다. 이러한 문제를 극복하기 위하여 일반적으로 각 변수를 표준 편차로 나눈 표준화 변수를 사용하게 된다. 그러나 변수들 사이의 상관관계가 존재 할 때 거리는 척도의 불변성과 상관관계를 고려한 통계적 거리로 측정되어야 한다. 이러한 통계적 거리를 Mahalanobis 거리라고 한다.
한편 Euclidean 거리 이외에 개체들 간의 유사도 평가 기준으로는 pearson correlation coefficient, spearman correlation coefficient나 mutual information이 사용되기도 한다. 유사도에 대한 정의를 어떻게 했느냐가 군집의 질에 영향을 미치게 된다.

2. 계보적 군집 방법
계보적 군집 방법에는 상사성이 밀접한 개체(유전자나 암 환자)들을 단계적으로 발현 양상이 비슷한 유전자들이나 같은 종류의 암 환자들로 이루어진 군집을 형성해 나가는 병합적 방법 (agglomerative method)이 많이 사용 된다. 병합적 방법에서는 각 개체가 별개 군집을 형성하기 때문에 n개 군집에서 출발한다. 연속되는 각 단계 마다 가까운 두 개 군집들을 병합하면, 각 단계 마다 군집의 수가 하나씩 줄어든다. 따라서 마지막 단계에서는 모든 개체들이 하나의 군집을 형성하게 된다. 이러한 계보적 방법에 의한 군집 형성 결과는 이차원상의 도면에 나타낸 dendrogram 형식으로 표시될 수 있다 (그림 1).

병합적 방법으로는 두 군집 사이의 거리에 대한 정의 방법에 따라 군집 연결 방법이 달라지는데 최단 연결법, 최장 연결법, 평균 연결법, 중심 연결법 등이 있다. 최단 연결법은 우선 (NxN) 거리 행렬 D에서 우선 거리가 가장 가까운 개체가 U, V라면 두 개체를 묶어서 군집 (U V)를 형성한다. 다음 단계는 군집 (U V)와 나머지 (N-2)개의 다른 개체 중 임의의 개체 W와의 최소 거리를 다음과 같이 계산한 후
()min{,}UVWuwvwdd d =
거리 행렬에서 거리가 가장 가까운 개체와 다시 군집을 형성한다. 이러한 과정을 반복 하면 모든 개체를 포함하는 하나의 군집을 형성하게 된다.
최장 연결법은 우선 (NxN) 거리 행렬 D에서 우선 거리가 가장 가까운 개체가 U, V라면 두 개체를 묶어서 군집 (U V)를 형성한다. 다음 단계는 군집 (U V)와 나머지 (N-2)개의 다른 개체 중 임의의 개체 W와의 최대 거리를 다음과 같이 계산한 후
()max{,}UVWuwvwdd d =
거리 행렬에서 거리가 가장 가까운 개체와 다시 군집을 형성한다. 이러한 과정을 반복 하면 모든 개체를 포함하는 하나의 군집을 형성하게 된다.
평균 연결법은 우선 (NxN) 거리 행렬 D에서 우선 거리가 가장 가까운 개체가 U, V라면 두 개체를 묶어서 군집 (U V)를 형성한다. 다음 단계는 군집 (U V)와 나머지 (N-2)개의 다른 개체 중 임의의 개체 W와의 평균 거리를 다음과 같이 계산한 후 ()()ijijUVWuvwddnn=ΣΣ
거리 행렬에서 거리가 가장 가까운 개체와 다시 군집을 형성한다. 이러한 과정을 반복 하면 모든 개체를 포함하는 하나의 군집을 형성하게 된다.
중심 연결법은 두 군집 사이의 거리는 두 군집의 중심간의 거리로 계산 된다. 만약 군집 C1에 속하는 개체의 수가 N1 일 때 군집 C1의 중심은 11iiicXXn∈=Σ
이 된다. 군집 C2에 속하는 N2개체의 중심을 2X라고 하면 두 군집 사이의 거리는 122()()1212(,)CCdPXXX==−X
이 된다. 여기서 P는 근접 척도로 Euclidean 거리의 자승이 사용된다. 만약 두 군집이 결합되면 새로운 군집의 중심은 가중 평균을 이용하여 구하고 각 군집 사이의 거리를 구한후 중심 거리가 가장 가까운 개체와 다시 새로운 군집을 형성한다. 이러한 과정을 반복하면 모든 개체를 포함하는 하나의 군집을 형성하게 된다.
평균을 이용하여 구하고 각 군집 사이의 거리를 구한후 중심 거리가 가장 가까운 개체와 다시 새로운 군집을 형성한다. 이러한 과정을 반복하면 모든 개체를 포함하는 하나의 군집을 형성하게 된다.
3. 분리 군집 방법
계보적 군집 방법에서는 일단 어떤 개체가 특정한 군집에 할당되면 다른 군집에 다시 할당 될 수 없는 단점을 가지고 있다. 반면에 분리 군집 방법은 어떤 개체가 초기 할당에서 잘못 되었다 하더라도 다시 할당할 수 있는 방법이다. 이 분리 군집 방법은 미리 설정된 기준의 최적화에 근거해서 자료를 분리하게 된다. 또한 이 방법을 사용할 때에는 최종 군집의 수가 알려져 있고 또한 미리 설정될 수 있다고 가정한다.
분리군집 방법으로 가장 대표적인 k-평균 군집 방법은 다음과 같다. n개 개체(유전자나 암 환자)가 p차원 다변량 개체라고 했을 때 각 개체는 초기에 설정된 k개의 발현 양상이 비슷한 유전자들이나 같은 종류의 암 환자들로 이루어진 군집중 어느 한 군집에 할당된다고 가정하자. 이때 i번째 개체의 j번째 변수를 X(i,j)로 표시하고, c번째 군집에 속한 nc개 개체들의 j번째 변수에 대한 평균을 X(c,j)로 표시했을 때 i번째 개체와 c번째 군집 사이의 Euclidean 거리는 다음과 같이 표시 할 수 있다. 0.521(,)(,)(,)pjDicXijXcj==−Σ
또한 각 개체를 c번째 군집에 재 할당할 때 오차 자승 합 E는
[]21(,())niEDici==Σ
이 된다. 위 식에서 c(i)는 군집 c는 i번째 개체를 포함하고 있다는 것이고, D(i,c(i))는 i번째 개체와 그 개체를 포함하고 있는 군집 사이의 Euclidean 거리를 표시한다. 따라서 분리 군집 방법은 각 개체를 어느 한 군집으로부터 다른 군집으로 움직일 때 오차 자승 합을 계산하여 비교하면서 더 이상 움직일 개체가 없을 때인 오차 자승 합이 최소화 하는 곳까지 반복한다.
4. 최근 제안 되는 군집화 방법
최근 들어 많은 전산학자와 통계 학자, 생물학자들이 개인 별로 또는 팀을 형성하여 군집화 방법을 개발하고 있으며 논문들이 발표되고 있다. 대표적인 논문들에 대해서 아래의 표에 설명 했다.
논문
발표 년도  사용 기법
실험 데이터
소프트 웨어
비고
Eisen et al
1998
계층적 군집화 분석
budding yeast cell cycle
공개
Cluster와 TreeView 프로그램
Tamayo et al
1999
SOM(self organizing map)
Budding yeast cell cycle
공개
Tavazoie et al
1999
K 평균 군집화 분석
budding yeast cell cycle
공개
Ben-Dor et al
1999
CAST
공개
Biocluster 프로그램
Sharan et al
2000
CLICK
Budding yeast cell cycle
라이센스 등록후 제공
계층적 군집화 분석과 비교 결과 제시
표 1 연구 동향
Eisen등은 통계학에서 널리 쓰이는 계층적 군집화를 DNA microarray에 적용하여 좋은 연구 업적을 남겼고, 이 연구의 산출물인 Cluster 와 TreeView라는 소프트웨어는 많은 사람에 의해 사용되고 있다. 이외에도 Hartuv는 그래프 이론을 바탕으로 군집화 방법을 제안하였고. Ben-Dor와 Shamir등도 역시 그래프를 응용하여 CAST라는 방법을 제안하고 프로그램으로 구현하였다. Tamayo등은 SOM(self –organizing maps)라는 방법을 적용하였으며 이외의 다수가 현재 군집화 방법의 개발 또는 평가 논문을 제시하고 있다.
5. 군집 분석시 유의 사항
군집을 형성하는 방법에는 여러 방법이 있지만 최적 방법에 대한 기준은 명확하지 않다. 따라서 군집 분석을 할 때 유의해야 할 사항을 정리하면 다음과 같다.
하나. 만약 집단들 사이에 상당한 차이가 없다면 현실적으로 군집 분석에서 매우 명확한 결과를 기대할 수 없을 것이다. 특히 만약 개체들이 비선형 형태로 분포되어 있다면 명확한 군집들을 찾아내는 것은 어려울 것이다.
둘. 군집 분석은 이상치에 대하여 상당히 민감한 결과를 보인다. 따라서 군집 분석을 시행하기 전에 자료에 대하여 이상치 존재 여부를 살펴야 한다고 판단된다.
셋, 군집 분석에 사용될 변수들의 측정 척도가 서로 다른 경우에는 분석 전에 표준화하여야 한다.
넷, 군집의 타당성을 검토하기 위하여 두 가지 방법이 사용된다. 첫 번째 방법은 자료에 대하여 여러 가지 군집 방법을 적용한 후 그 결과들이 유사한가를 검토하는 방법이다. 두 번째 방법은 자료를 랜덤 하게 이등분하고 각각에 대하여 여러 가지 군집 방법을 실시한 후 두 개의 결과가 유사한지 여부를 검토하여 일치도가 높은 군집 방법을 선택하는 방법이다.
3. 요약 및 연구 전망
DNA microarray 실험의 일반화와 유전자를 이용한 연구의 발전으로 인하여 데이터들은 급속히 증가되고 있다. 이러한 방대한 양의 정보들을 바탕으로 의미 있는 정보를 획득하는
데 있어서는 군집화 분석이 중요한 위치를 차지하고 있다. 그래프 이론에서의 접근, 신경망을 이용한 학습 기법에서의 접근, 확률 통계학적인 접근 방식으로 여러 군집화 분석이 연구되어 왔다. 특히 계층적 군집화와 분리 군집화 분석의 경우는 단순하면서도 어느 정도 의미 있는 결과를 도출하는 알고리즘으로써 많이 활용되고 있으며 CLICK과 CLIFF는 군집화의 정확성을 더욱 높이는 결과를 가져왔다.
이 분야에 있어서 연구는 지속적인 발전이 있으리라고 본다. 생물학이라는 특수 영역에 의존된 데이터라는 특색과 유전 자수에 비해 실험 횟수는 매우 적은 특수한 환경 제약이 있기 때문에 이를 극복하기 위한 여러 가지 heuristic한 방법들이 계속해서 연구되리라고 전망된다.
by 쿠리다쿠리 2010. 4. 19. 02:50
마할라노비스 거리는 군집분석에서 가장 많이 사용되는 거리개념으로서, 두 지점의 단순한 거리뿐만이 아니라, 변수의 특성을 나타내는 표준편차와 상관계수가 함께 고려된다는 특징을 가지고 있다.

마할라노비스 거리란 각각의 케이스가 여러가지 변인(variables) 중심값 (평균값, mean) 들로 이루어진 중심 (centroid) 에 대해서 갖는 거리를 말한다. 개념적으로 살펴보면, 여러변인을 동시에 이용하여 살펴보는 테스트 (multivariate) 경우에 각각의 중심값을 중앙에 교차시켜 케이스 값들을 나열해보면 일종의 군집을 이루게 되는데, Mahalanobis distance는 특정 케이스의 값이 여기서 심하게 벗어났는가를 보기 위한 거리값이다.

이렇게 얻은 각 case의 값을 데이터로 $\chi^2$ distribution 을 이용하여 극한 값을 가려낼 수 있는데, 데이터의 극한 값을 찾는데 쓰이기도 한다. 그 판단의 기준은 $\chi^2$ 값의 p 가치가 .001보다 작을 때 (즉, standard deviation 거리의 약 3-4배가 넘을 때) 이다.

군집분석을 실시하는 경우 대부분 군집분석을 실시하기 전 모들 변수들을 평균 0, 분산 1의 변환된 변수로 표준화 시킨다.


아래 그림과 같은 점 A,B,C 가 있다고 하자.

사용자 삽입 이미지

공분산 행렬(Covariance Matrix)은 아래와 같다라고 하자.

LaTeX equation

A, B, C 각각의 위치는 다음과 같다.
A(0.5, 0.5)
B(0, 1)
C(1.5, 1.5)


마할라노비스 거리 구하는 공식은 아래와 같다.

LaTeX equation

LaTeX equation은 공분산 행렬의 역행렬이고, LaTeX equation는 변환행렬이다.



먼저, 공분산 행렬의 역행렬을 구하자. 2차 정방행렬의 역행렬 구하는 공식은 다음과 같다.

LaTeX equation 일 때, A의 역행렬 LaTeX equation 이다.

위식에 의해 공분산 행렬의 역행렬을 구하면

LaTeX equation 이다.

마할라노비스 거리 공식에 의해 A,B의 거리와 A,C의 거리를 구해보자.

LaTeX equation

LaTeX equation


유클리안 거리와 비교해서 결과가 반대로 나왔음을 알 수 있다. 즉, 상관에 따른 거리가 변할 수 있음을 나타낸다
by 쿠리다쿠리 2010. 4. 19. 02:33