본문 바로가기

파이썬 머신러닝

[파이썬 머신러닝 완벽 가이드] 7. 군집화

군집(clustering) vs 분류(classification)

공통점

데이터를 그룹으로 나누는 기술

 

차이점
   - 군집: 비지도 학습(Unsupervised Learning) 기술

데이터 내의 유사한 패턴이나 구조를 발견하여 데이터를 비슷한 그룹으로 나누는 것을 목표로 합니다.

즉, 군집은 데이터 내의 숨겨진 구조를 발견하거나 데이터 간의 상호 관계를 이해하기 위해 사용됩니다.

대표적인 군집 알고리즘에는 K-평균, 계층적 군집화, DBSCAN 등이 있습니다.


   - 분류: 지도 학습(Supervised Learning) 기술

주어진 입력 데이터에 대해 사전에 정의된 목표 변수(라벨 또는 클래스)에 따라 데이터를 그룹으로 나누는 것을 목표로 합니다.

즉, 분류는 데이터를 이미 알려진 클래스 또는 범주로 분류하는 데 사용됩니다.

대표적인 분류 알고리즘에는 결정 트리, 로지스틱 회귀, 서포트 벡터 머신(SVM) 등이 있습니다.


요약하자면, 군집은 데이터 내의 구조를 발견하고 유사한 데이터를 묶는 비지도 학습 기술이며, 

분류는 미리 정의된 클래스 또는 범주를 기반으로 데이터를 분류하는 지도 학습 기술입니다.

 

평가지표

비지도학습의 특성상 어떠한 지표라도 정확하게 성능을 평가하기는 어렵습니다.

그럼에도 불구하고 군집화의 성능을 평가하는 대표적인 방법으로 실루엣 분석을 이용합니다.

 

실루엣 분석

실루엣 분석은 실루엣 계수를 기반으로 합니다. 실루엣 계수는 개별 데이터가 가지는 군집화 지표입니다.

개별 데이터가 가지는 실루엣 계수는 해당 데이터가 같은 군집 내의 데이터와 얼마나 가깝게 군집화돼 있고,

다른 군집에 있는 데이터와는 얼마나 멀리 분리돼 있는지를 나타내는 지표입니다.

 

좋은 군집화의 기준 조건

1. 전체 실루엣 계수의 평균값은 0 ~ 1 사이의 값을 가지며, 1로 가까워질수록 좋습니다.

2. 전체 실루엣 계수의 평균값과 더불어 개별 군집의 평균값의 편차가 크지 않아야 합니다.

(개별 군집의 실루엣 계수 평균값이 전체 실루엣 계수의 평균값에서 크게 벗어나지 않는 것이 중요합니다.)

 

 

군집화 알고리즘

 

k-평균 군집화 (거리 기반 군집중심점 이동)

k-평균은 각 군집의 중심을 임의로 선택한 다음,

반복적으로 데이터 포인트를 가장 가까운 중심에 할당하고 중심을 업데이트합니다.

군집 수(k)를 사용자가 사전에 지정해야 합니다.

군집이 원형으로 가정되며, 군집 중심과 각 데이터 포인트 간의 거리를 기반으로 할당합니다.

 

평균 이동 군집화 (밀도 기반 군집중심점 이동)

초기 군집 중심을 임의로 선택한 후, 각 데이터 포인트가 현재 군집 중심의 가장 밀집된 영역을 찾아 이동합니다.

이 과정을 반복하여 군집 중심을 업데이트하고 수렴합니다.

사용자가 지정한 대역폭의 크기에 따라 알고리즘이 자동으로 데이터로부터 군집의 수를 추정합니다.

군집의 모양과 크기를 가정하지 않고 데이터의 분포를 고려하여 군집을 형성합니다.

 

*일반적으로 평균 이동 군집화는 대역폭이 클수록 적은 수의 군집 중심점을 가지며

대역폭이 적을수록 많은 수의 군집 중심점을 가집니다.

 

GMM 군집화

GMM은 데이터가 여러 개의 가우시안 분포를 따르는 혼합된 모델이라고 가정하고 수행합니다. 

이 혼합된 모델에서는 여러 개의 정규 분포 곡선(평균과 분산)을 추출하여 데이터를 군집화합니다. 

개별 데이터가 이 중 어떤 정규 분포에 속하는지(확률) 결정하며, 이를 기반으로 데이터를 군집화합니다. 

GMM 모델의 총 개수는 사용자가 사전에 지정해야 합니다.

 

DBSCAN 군집화 (밀도 기반 군집화)

DBSCAN은 주어진 데이터 포인트들의 공간에서 이웃 포인트들의 밀도를 기반으로 군집화를 수행합니다. 

이 알고리즘은 다음과 같은 원리를 따릅니다:

1. 입실론 주변 영역 내에 데이터 포인트의 수가 최소 데이터 개수보다 많으면 해당 데이터 포인트를 핵심 포인트로 간주합니다.
2. 핵심 포인트를 중심으로 다른 핵심 포인트들을 서로 연결하면서 군집을 형성합니다.
3. 핵심 포인트가 아니지만 이웃 데이터로 핵심 포인트를 가지고 있는 데이터를 경계 포인트로 분류합니다.
4. 반경 내에 최소 데이터를 가지고 있지 않고, 핵심 포인트 또한 이웃 데이터로 가지고 있지 않는 데이터를 잡음 포인트로 분류합니다.

DBSCAN은 이러한 핵심 포인트, 경계 포인트, 잡음 포인트를 기반으로 데이터를 군집화하며, 

이를 통해 복잡한 기하학적 분포를 가진 데이터에 대해서도 효과적으로 군집화를 수행할 수 있습니다. 

그러나 데이터의 밀도가 균일하지 않은 경우에는 성능이 감소할 수 있습니다.

 

 

감사합니다.