본문 바로가기
Multivariate analysis/다변량분석

퍼지 군집(fuzzy clustering)

by 뚜찌지롱 2021. 3. 10.



이전 포스팅에서 혼합 분포 군집(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 방법이 더 적절해 보인다.

출처 : https://rfriend.tistory.com/230

 

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

 

[R 군집분석 (Cluster Analysis)] (3) 퍼지 군집 (Fuzzy Clustering) : Fuzzy C-means Clustering Algorithm (FCM)

지난번 포스팅에서는 분할적 군집화(Partitional Clustering) 중에서 프로토타입 기반(Prototype-based)의 군집화 기법인 K-중심 군집(K-Centroid Clustering)에 대해서 알아보았습니다. 이번 포스팅에서는 분할..

rfriend.tistory.com

댓글