경계에 있는 데이터를 다루기
어느 한 그룹에만 넣기 어려운 점도 있습니다. 퍼지 C-means는 각 점에 대해 여러 그룹의 소속도를 계산합니다. 한 점의 소속도를 모두 더하면 1이 되지만, 이것이 곧 실제 정답일 확률을 뜻하지는 않습니다.
중심에 가까울수록 소속도가 커집니다
표준적인 퍼지 C-means는 소속도에 지수 m을 적용한 거리 제곱 합을 줄입니다. m은 1보다 크며, 값에 따라 소속도가 퍼지는 정도가 달라집니다. m=2이고 두 중심까지의 거리가 각각 1과 2라면 다음처럼 계산할 수 있습니다.
distances = [1, 2]
weights = [1 / distance ** 2 for distance in distances]
total = sum(weights)
print([weight / total for weight in weights])
출력은 [0.8, 0.2]입니다. 가까운 첫 번째 중심에 더 큰 소속도를 주었습니다. 예제의 역제곱 식은 m=2이고 거리가 모두 0보다 클 때 쓰는 계산입니다. 점이 중심과 정확히 겹치면 0으로 나누지 않도록 별도 규칙이 필요합니다.
중심도 소속도를 반영합니다
중심을 갱신할 때는 모든 점을 같은 비중으로 평균 내지 않습니다. 각 점에 소속도 ** m만큼의 가중치를 줍니다. 소속도 갱신과 중심 갱신을 번갈아 반복하며, 초기값과 중단 조건에 따라 결과가 달라질 수 있습니다.
확인 문제
어떤 고객의 A그룹 소속도가 0.8입니다. ‘이 고객이 다음 달 상품 A를 살 확률이 80%‘라고 설명해도 될까요?
해설 보기
안 됩니다. 소속도는 정한 거리와 군집화 목적에 따른 값입니다. 구매 확률을 말하려면 실제 구매 결과를 사용한 별도의 예측 모델과 확률 검증이 필요합니다.