데이터 과학/머신러닝
[머신러닝&딥러닝/09-10] 계층적 군집분석, 분할적 군집분석
sunning
2025. 4. 23. 15:51
728x90
0. 목차 및 강의 출처
[머신러닝&딥러닝/00] 공부 목차
이 글은 내가 스스로 공부한 내용들을 정리하기 위한 목적이다. 머신러닝 강의 출처:https://youtube.com/playlist?list=PLWtr7MRpQi5ATPYo3xN21Bwwd_Ut4rY0d&si=UNqIXY8WLCzjoMcp 인공지능 특강 - 머신러닝, 딥러닝ㅁ 1강 -
sunning-10.tistory.com
1. 머신러닝 종류
- 지도학습
- 비지도학습
- 군집분석
- 계층적 군집분석
- 분할적 군집분석 (=비계층적 군집분석)
- 차원축소
- 연관규칙분석
- 군집분석
- 강화학습
2. 군집분석 (= 클러스터링 = 군집화)
- 의미: 미리 정해진 분류 기준이나 정답(label) 없이, 데이터의 특성과 유사성에 따라 비슷한 데이터들을 그룹(클러스터)으로 묶는 방법
- 목적
- 데이터의 응집도(cohesion)를 높이고 분리도(separation)를 크게 함으로써, 데이터에 내재한 군집 구조를 찾아내는 것
- 클러스터 내의 데이터들은 서로 유사하고 클러스터 간에는 차이가 크게 되도록 그룹핑하는 것
- 데이터 내재된 구조나 패턴을 발견하고, 숨겨진 관계를 탐색
- 활용 예시
- 레이블링되지 않은 대규모 데이터에서도 자동으로 패턴을 찾아낼 수 있기 때문에, 데이터 과학에서 탐색적 분석이나 특징 추출 단계에서 널리 활용
- 클러스터링은 다양한 분야에서 데이터 세분화와 패턴 발견을 위해 활용
- 고객 세분화(시장_segment)에 클러스터링을 적용하면 구매 행태가 비슷한 고객군을 발견하여 맞춤형 마케팅에 활용할 수 있음
- 장바구니 분석에서는 함께 구매되는 상품들을 군집화하여 연관 상품을 파악하고 프로모션 전략을 세울 수 있다 (Clustering in Machine Learning | GeeksforGeeks). 소셜 네트워크 분석에서는 이용자의 활동 데이터를 군집화하여 관심사별 커뮤니티를 발견하거나, 유사한 취향을 가진 사람들을 서로 추천해주는 데 사용할 수 있다 (Clustering in Machine Learning | GeeksforGeeks). 의료 영상 분석 분야에서는 이미지 픽셀들을 클러스터링하여 엑스선 사진 등에서 병변이 의심되는 영역을 자동으로 구분해낼 수 있으며 (Clustering in Machine Learning | GeeksforGeeks), 이상 탐지 분야에서는 정상 데이터들과 밀집도가 다른 관측치를 군집화 과정에서 **이상치(outlier)**로 식별하여 금융 사기 탐지 등에 활용한다 (Clustering in Machine Learning | GeeksforGeeks). 이밖에도 클러스터링은 거대 데이터셋에서 유사한 데이터들을 묶어 데이터 압축 및 요약을 가능하게 하며 (Clustering in Machine Learning | GeeksforGeeks), 추천 시스템, 문서 토픽 군집화, 생물정보학의 유전자 발현 패턴 분석 등 다양한 영역에서 필요성이 크다.
2. 계층적 군집분석
- 의미: 계층적으로 각 데이터를 유사한 군집으로 묶어가며 진행하는 방법
- 종류: 응집형 군집과 분리형 군집으로 나눌 수 있음
- 데이터 및 군집간 거리 측정 방식
- 데이터간 거리 측정 방식
- 수치형 데이터: 유클리디안 거리, 맨하탄 거리, 체비셰프 거리(좌표 차이 중 가장 큰 값을 갖는 거리), 마할라노비스 거리(두 점 사이의 확률분포를 고려한 거리) 등
- 범주형 데이터: 자카드 유사도(두 벡터의 교집합과 합집합의 비), 코사인 유사도(두 벡터의 코사인 각도) 등
- 벡터(Vector): 크기와 방향을 가지고 있는 양을 나타내는 개념 (one-hot encoding의 예시)
- 인코딩(Encoding): 주로 범주형 데이터를 벡터로 변환하는 방식. 여러 인코딩 기법이 있고, 이들은 모두 결과적으로 데이터를 벡터(또는 행렬)로 바꾼다는 점에서 벡터화의 하위 개념
- 군집간 거리 측정 방식 ( = linkage 방식)
- 단일 연결법(=최단 연결법) : 두 군집 내의 데이터들 중 최소 거리
- 완전 연결법(=최장 연결법): 두 군집 내의 데이터들 중 최대 거리
- 중심 연결법 : 두 군집의 중심점을 구해 중심점 거리
- 와드 연결법: 군집을 병합하여 오차 제곱합을 근거로 하여 군집간 거리
- 데이터간 거리 측정 방식
2-1. 병합적(응집형) 방법
- 의미: 하나의 데이터를 하나의 군집으로 보고 가까운 군집끼리 병합해 나가는 방식 (Bottom-up)
2-2. 분할적(분리형) 방법
- 의미: 전체 데이터를 하나의 군집으로 보고 분할해 나가는 방식 (Top-down)
- 대표 알고리즘: 다이아나(DIANA) 알고리즘
3. 군집분석 평가지표
- 군집 내 응집도가 높고 군집간 분리도가 높아야 잘 된 군집화라고 할 수 있음
- 실루엣 계수(Silhouette Coefficient): 각각의 데이터별로 그 데이터가 속한 군집 내의 유사도와 인접한 군집의 유사도를 비교하는 지표
4. 분할적 군집분석 (= 비계층적 군집분석)
- 의미: 계층적 관계가 없는 다수의 군집들을 만드는 방법
- 종류
- 중심점 기반: K-Means 군집화
- 밀도 기반: DBSCAN 군집화
- 확률 기반: 퍼지군집화
- 분포 기반: EM 알고리즘
- 그래프 기반: 자기조직화지도(SOM)
4-1. K-Means 군집화
- 의미: 각 데이터와 중심점의 거리를 측정 후 가장 가까운 그룹에 할당하여 K개의 군집으로 묶는 방법(= 거리 기반 알고리즘)
- 지도학습에서의 거리 기반 알고리즘 : K-NN 알고리즘
- 방법론:
- 군집 개수(K) 설정 (k: 하이퍼파라미터)
- 최적의 군집 개수 K 결정 기법 = 엘보우 기법(Elbow Method)
- WCSS 값과 군집 개수를 두고 비교한 그래프를 통해 경사가 완만해지는 지점의 최적 K 값 선택
- WCSS: 대략 군집과 데이터 간의 오차 합?이라고 생각하면 됨
- 최적의 군집 개수 K 결정 기법 = 엘보우 기법(Elbow Method)
- 초기 중심점 설정 (보통 랜덤으로 설정, 중심점 개수 = k개)
- 데이터를 가장 가까운 군집에 할당 (중심점 위치가 변하지 않을 때까지 반복)
- 어떤 거리를 쓸지는 내가 설정 (유클리디안 거리, 맨하탄 거리, 체비셰프 거리(좌표 차이 중 가장 큰 값을 갖는 거리), 마할라노비스 거리(두 점 사이의 확률분포를 고려한 거리) 등)
- 데이터의 평균으로 중심점 재설정
- 군집 개수(K) 설정 (k: 하이퍼파라미터)
- 특징
- 알고리즘의 이해와 적용이 쉬움
- 데이터에 대한 사전 정보가 특별히 필요 없음
- 초기 군집의 수 정의에 어려움
- 초기 중심점 설정에 따라 결과가 다르게 나옴
- 노이즈나 이상치에 매우 민감함
- 범주형 데이터에서 사용 불가능 (K-Modes 군집화 활용, mode: 최빈값)
4-2. DBSCAN 군집화
- 의미: 데이터의 밀도를 기반으로 서로 가까운 데이터들을 군집으로 묶는 방법(= 밀도 기반 알고리즘)
- 방법론
- 포인트를 임의로 선택
- Epsilon 거리(하이퍼파라미터) 내 모든 데이터 탐색
- Min Points(hyperparameter) 이상이면 군집에 할당 (Min Points: 내가 허용하는 밀도 경계치)
- Min Points 이하이나 군집에 속한 포인트는 Border Point
- 어느 군집에도 속하지 않는 포인트는 이상치
- 특징
- 군집 개수 지정할 필요 없음 (장점이자 단점)
- 노이즈와 이상치에 강함
- 다양한 분포의 데이터에서 사용 가능
728x90