중요한 점은 정답(라벨)이 없다는 것, 데이터를 보면서 컴퓨터가 스스로 그룹을 만들어가는 비지도학습 이기 때문이다.
예를 들어, 색깔이 다양한 구슬들이 있다고 가정해보자. 구슬을 빨간색, 파란색, 노란색으로 묶으려 할 때, "이 색은 빨간색이야!" 라고 사람이 직접 정해주는 게 아니라, 컴퓨터가 구슬의 색상 분포를 분석해서 스스로 묶는 것이 군집화다.
군집화의 대표적인 응용 분야는?
이미지 데이터 그룹화: 비슷한 이미지를 한 그룹으로 묶기
고객 세분화: 고객의 구매 패턴을 보고 비슷한 성향의 고객 그룹 찾기
영상 분할: 영상 속에서 비슷한 패턴을 가진 영역 나누기
2. K-평균 군집화(K-Means Clustering)
K-평균 군집화는 데이터를 K개의 그룹으로 나누는 방법. 이때, K는 사용자가 지정하는 숫자다. 예를 들어, 구슬을 3개의 그룹으로 나누고 싶으면 K=3으로 설정한다.
K-평균 군집화 알고리즘의 과정
1️⃣ 초기화 데이터를 분석하기 전에 K개의 임의의 초기 중심점을 선택
2️⃣ 데이터 그룹화 각 데이터를 중심점들과 비교하여, 가장 가까운 중심점에 데이터를 배정. 이렇게 데이터가 K개의 그룹으로 나눈다
3️⃣ 중심점 업데이트 각 그룹의 중심점을 다시 계산해서 업데이트해요.
4️⃣ 반복 중심점이 더 이상 변하지 않거나, 설정한 반복 횟수에 도달할 때까지 2~3단계를 반복
K-평균 군집화의 장점은?
간단하고 빠르게 계산할 수 있어요!
대규모 데이터에 적합해요.
K-평균 군집화에서 주의할 점
✅ 초기값 선택의 중요성 초기 중심점을 어떻게 선택하느냐에 따라 결과가 달라질 수 있다. 임의로 정하는 것보다는 데이터를 적절히 나눠서 초기값을 정하는 것이 중요하다
✅ K 값 설정 K 값이 너무 크면 그룹이 너무 세분화되고, 너무 작으면 데이터의 다양성을 반영하지 못해요. 엘보우 기법 등을 활용해서 적절한 K 값을 찾는 것이 중요.
K-평균 군집화에서 K 값을 결정하는 방법 🤔
K-평균 군집화에서 **K 값(K개의 군집 수)**을 잘 설정하는 것은 성공적인 군집화를 위해 매우 중요함. 너무 적게 설정하면 데이터의 다양성을 반영하지 못하고, 너무 많이 설정하면 필요 이상으로 세분화되어 분석이 복잡해질 수 있다. 다음은 적절한 K 값을 찾는 몇 가지 방법
1. 엘보우 방법(Elbow Method) 💡
엘보우 방법은 가장 널리 알려진 K 값 결정 방법이다
엘보우 기법 🍦
엘보우 기법은 "아이스크림을 얼마나 사야 만족할까?"를 고민하는 모습.
아이스크림이 너무 적으면(클러스터가 너무 적으면) 만족하기 어렵다.
아이스크림을 너무 많이 사면(클러스터가 너무 많으면) 다 먹지도 못하고 낭비일 수 있다.
딱 적당히, 배부르고 만족스러운 지점을 찾아야 한다. 이게 "엘보우 포인트", 즉 그래프에서 꺾이는 부분이다! 👉 그래프를 보면 **클러스터의 수(k)**가 증가할수록 오류(SSE)가 감소하지만, 어느 순간 더 이상 큰 이득이 없다는 걸 알 수 있다. 그 꺾이는 점이 바로 최적의 클러스터 수!
사용 방법
1️⃣ 군집의 수(K)를 1부터 다양한 값으로 설정하여 K-평균 군집화를 실행합니다. 2️⃣ 각 K에 대해 **왜곡 값(WCSS, Within-Cluster Sum of Squares) : 각 데이터 포인트가 자신이 속한 군집 중심과 얼마나 가까운지를 측정하는 값**을 계산합니다.
WCSS는 각 데이터 포인트가 속한 군집 중심과의 거리를 제곱해서 합한 값 3️⃣ K 값과 WCSS 값을 그래프로 그려봅니다. 4️⃣ 그래프에서 WCSS의 감소율이 급격히 줄어드는 지점(꺾이는 지점, Elbow)을 찾는다
이 방법의 원리
K가 커질수록 군집의 수가 늘어나면서 각 군집이 더 작은 크기로 나뉘어 WCSS가 줄어들어요. 그러나 어느 순간부터는 K를 늘려도 WCSS 감소 효과가 미미해지는데, 이 지점이 바로 적절한 K 값이다.
실루엣 기법 🚦
실루엣 기법은 "내가 이 모임에 잘 어울릴까?"를 따져보는 거.
사람들이 서로 잘 어울리면(같은 클러스터 안에서 거리 가까움) "아, 나 여기 딱 맞는 것 같아!" 하는 기분이 들것이다.
근데 만약 옆 모임과 너무 가까운 곳에 있으면(다른 클러스터와 거리 가까움) "어? 나 이 모임이 아닌가?" 하는 의문이 생기겠지?
실루엣 값은 이 두 가지를 비교해서, 내가 얼마나 잘 어울리는지를 나타낸다. 값이1에 가까울수록 좋음!
2. 실루엣 분석(Silhouette Analysis) 🌟
실루엣 분석은 군집화의 품질을 평가하면서 적절한 K 값을 찾는 방법.
실루엣 점수(Silhouette Score)
실루엣 점수는 한 데이터 포인트가 자신이 속한 군집 내의 데이터와 얼마나 가까운지와 다른 군집 데이터와 얼마나 멀리 떨어져 있는지를 측정한 값입니다.
점수는 -1에서 1 사이의 값을 가지며, 값이 클수록 군집화가 잘 이루어진 것입니다.
1: 완벽한 군집화
0: 군집 경계에 위치한 데이터
-1: 잘못된 군집화
사용 방법
1️⃣ K 값을 여러 개 설정하여 각각 K-평균 군집화를 수행 2️⃣ 각 K 값에 대해 실루엣 점수를 계산합니다. 3️⃣ 실루엣 점수가 가장 높은 K 값을 선택합니다.
요약
엘보우 기법: 몇 개로 나눌지적당한 개수를 찾는 방법
실루엣 기법: 각 데이터가 클러스터에얼마나 잘 속하는지확인하는 방법
3. 계층적 군집화(Hierarchical Clustering)
계층적 군집화는 데이터를 단순히 여러 그룹으로 나누는 것이 아니라, 큰 그룹 속에 작은 그룹이 포함된 계층 구조를 만드는 방법.
계층적 군집화의 두 가지 접근법
1️⃣ 병합적 방법(Agglomerative)
각 데이터를 개별 군집으로 시작해서, 가까운 군집끼리 합쳐서 점점 더 큰 그룹을 만든다
2️⃣ 분할적 방법(Divisive)
데이터를 하나의 큰 군집으로 시작해서, 특정 기준에 따라 분할하며 점점 더 작은 그룹으로 나눈다
병합적 방법의 과정
1️⃣ 데이터를 각각 하나의 군집으로 설정 2️⃣ 모든 군집 쌍 간의 거리를 계산. 3️⃣ 가장 가까운 두 군집을 선택해 병합. 4️⃣ 병합된 군집을 클러스터에 추가하고, 원래 군집은 제거. 5️⃣ 하나의 군집이 남을 때까지 2~4단계를 반복
계층적 군집화에서 중요한 포인트는?
군집 간의 거리를 측정하는 방식이 중요해요!
예: 최단 거리(Closest), 최장 거리(Farthest), 평균 거리(Average), 중심 거리(Centroid), Ward’s 방법 등
결과를 **덴드로그램(Dendrogram)**으로 표현해요. 덴드로그램을 분석하면 데이터를 적절히 몇 개의 군집으로 나눌지 결정할 수 있어요.
군집화의 차이점 한눈에 정리! 🧐
방법 K-평균 군집화 계층적 군집화
학습 방식
K개의 고정된 그룹으로 데이터 나눔
그룹이 포함된 계층 구조 생성
초기화
K 값과 초기 중심점 필요
초기 설정 필요 없음
데이터 크기
대규모 데이터에 적합
데이터가 작을수록 유리
결과 표현
단순한 그룹 나눔
덴드로그램으로 계층적 구조 표현
마무리하며
군집화는 데이터를 분석하고 이해하는 데 아주 강력한 도구! 😊
K-평균 군집화는 간단하고 빠르게 군집을 나눌 때, 계층적 군집화는 데이터의 계층 구조를 이해할 때 특히 유용하다. 📊✨