이전 포스팅에서 혼합 분포 군집(Mixture distribution clustering)과 밀도 기반의 군집(DBSCAN)을 다루었다. 이번 포스팅에서는 퍼지 군집(fuzzy clustering)에 대해서 다룰 것이다.
fuzzy는 '모호함, 애매함' 의 뜻을 가지며 그 뜻과 상응하여 각 자료점이 한 개 이상의 군집에 속할 수 있도록 군집을 형성하는 것이다. 예를 들어, 1개의 자료를 A와 B로 분류해야 하는 상황(ex. 로지스틱 회귀)에서 A 군집의 특성과 100% 일치한다면 퍼지 군집을 수행하는 것은 의미가 없을 것이다. 하지만, A 군집과 B 군집에 속할 확률이 각 0.51 / 0.49 라고 했을 때 임계값이 보통 0.5 이므로 해당 자료를 A 군집으로 분류하는 것은 다소 찝찝함이 생긴다. 따라서, (최종적으로는 A 군집에 속하겠지만) 중간 과정에서 각 데이터가 군집에 속할 확률에 대해 정보를 전달해주는 것을 목적으로 하는 군집이라고 생각하면 좋겠다.
지금까지 다루었던 군집 방법 중 k-평균 군집이나 밀도 기반의 군집은 무조건 각 자료점이 한 군집에 속하며, 다른 군집에 속할 가능성이 어느 정도(%) 되는지 알 수 없었다. 이와 같은 군집을 hard clustering 또는 비-퍼지(non-fuzzy) 군집이라고 한다. 반면, 혼합 분포 군집과 퍼지 군집의 경우 데이터가 각 군집에 속할 확률을 제공해 주어 확률이 높은 군집으로 분류되었다. 이와 같은 군집을 soft clustering 이라고 한다. 따라서, 데이터의 분포를 보았을 때 군집이 좀 나뉘는 것처럼 보이나 특정 군집으로 분류하기 애매 모호한 데이터가 많이 있다면 hard clustering 방법보다 soft clustering 방법이 더 적절해 보인다.
1. 퍼지 군집
퍼지 군집 알고리즘 중 가장 많이 사용되는 퍼지 c-평균(fuzzy c-means, FCM) 알고리즘에 대해 알아보자.
(1) FCM
FCM 알고리즘은 밑의 목적함수(군집 내 오차 제곱합, SSE)를 최소로 하는 방식으로 군집을 수행하며 k-평균군집 알고리즘과 매우 유사하다.
$\sum_{j=1}^{k} \sum_{i=1}^{n} u_{ij}^p (x_j - c_j)^2$
- $u_{ij}$ : membership coefficient(회원계수), $x_i$가 j번째 군집에 속할 확률
- $c_j$ : j번째 군집의 중심(center)
- p : fuzzifier(퍼지승수)
즉, 군집을 수행하기 위해 사전에 K(군집 수)를 정해주어야 하며 거리(비-유사성) 개념을 사용하여 '군집 내 관측치들 간의 유사성'은 최대화하고, '군집 간 비유사성'은 최대화하는 방향으로 알고리즘을 수행하게 된다. 다른 점은 FCM의 목적 함수에 회원계수와 퍼지승수가 추가로 사용된다.
$u_{ij}^p = \frac{1}{\sum_{l=1}^{k}\left (\frac{x_i-c_l}{x_i-c_j}\right )^\frac{2}{p-1}}$
회원계수는 위의 식으로 구할 수 있다. 식을 자세히 보면, 관측값 $x_i$가 군집 j에 속할 정도를 나타내는 $u_{ij}$는 $x_j$로부터 군집 j의 중심까지의 거리의 역(inverse)에 연관된다. 즉, 군집 내 중심과 거리가 가까울수록 회원계수는 커지게 된다. 회원계수는 j번째 군집에 속한 확률을 의미하므로 $\sum_{j=1}^k u_{ij} = 1$ 을 만족한다. 또한, 각 데이터마다 j번째 군집에 속할 확률을 가지므로 이는 데이터가 0이 아닌 가중값을 가진다는 것과 일맥상통한다. 따라서 가중값은 $0 < \sum_{i=1}^{n} u_{ik} < n$ 을 만족한다.(관측값 i에 대한 조건임을 유의하고, n인 이유는 k번째 군집에 속할 확률이 1이면 n개의 데이터의 가중치들이 합해져 $1 \times n$ 이됨. but, 모든 가중값이 1이 될 수는 없다.)
퍼지승수 p는 1보다 큰 실수이고($1.0 < p < \infty$), 퍼지의 정도를 나타낸다. 즉, p가 1에 가까우면 k-평균군집과 유사한 결과를 제공하며, p가 클수록 (각 군집의 평균이 전체 평균에 가까워져) 퍼지(븐루의 모호함)의 정도가 커지게 된다. 계산의 간편성 등의 이유로 p=2가 주로 사용된다. (k-평균군집이 퍼지군집의 특수한 경우라고 생각할 수 있음.)
퍼지 군집에서 목적함수를 최소화하는 각 군집의 중심($c_j$)은 다음의 식으로 구할 수 있다. (편미분을 통해)
$c_j = \frac{\sum_{i=1}^{n} u_{ij}^p x_i}{\sum_{i=1}^{n} u_{ij}^p}$ , $j = 1, 2, \cdots, k.$
여기서 주목할 점은 군집에 속하는 자료만으로 군집의 중심을 구하는 k-평균군집과는 달리, 전체 자료를 이용하여 군집의 중심을 구한다는 점이다.
(2) 알고리즘
퍼지 군집의 알고리즘 수행 절차를 정리하면 다음과 같다.
① 군집의 개수 K를 선택
② 각 관측값이 특정 군집에 속할 가중치(회원계수)값에 대한 초깃값을 랜점하게 설정
Repeat ↓
③ 각 군집의 중심을 계산
④ 각 관측값에 대해 회원계수를 다시 계산
⑤ 알고리즘이 수렴할 때까지 반복(즉, 3번의 2개 반복에서 더이상 가중치 값의 변화가 주어진 민감도 기준치 미만일 때)
rfriend.tistory.com/230
'Multivariate analysis > 다변량분석' 카테고리의 다른 글
대응분석(Correspondence Analysis, CA) (0) | 2021.03.21 |
---|---|
코호넨 군집(Kohonen network) (0) | 2021.03.12 |
밀도기반군집(density-based clustering) (0) | 2021.03.05 |
혼합분포군집(mixture distribution clustering) (0) | 2021.03.03 |
판별분석(Discriminant Analysis, DA) (0) | 2020.06.21 |
댓글