나의 분석일기 ♬
[머신 러닝]군집 분석(Cluster Analysis) 본문
군집 분석(Cluster Analysis)
군집 분석이란?
각 데이터의 유사성을 측정하여 다수의 군집으로 나누고 군집 간의 상이성을 확인하는 분석
군집 분석을 수행하려면 개체 간의 유사성, 비유사성을 정의하고 측정해야됨
유사성 ↑ : 같은 군집에 속할 가능성 ↑
비유사성 ↑ : 다른 군집에 속할 가능성 ↑
유사성의 척도
- 상관 계수(correlation coefficient)
두 변수 간의 선형 관계의 강도를 측정
- 코사인 유사도(cosine similarity)
두 벡터 사이의 코사인 값으로 0에서 1사이의 값을 가짐
두 벡터가 정확히 동일하면 코사인 유사도는 1, 완전히 다르면 0
비유사성의 척도
거리(distance)
거리가 가까울수록 유사성이 높고, 거리가 멀수록 유사성이 낮음
- 유클리드 거리(Euclidean distance):L1
두 점 사이의 직선 거리를 의미
거리에 기반한 유사도 측정 방식이기 때문에 두 데이터 사이의 스케일 차이가 크지 않은 경우에 좋음
유클리드 거리가 가까울수록 가까운 위치에 있으므로 유사성이 높고 거리가 멀수록 유사성이 낮음
- 맨해튼 거리(Manhattan distance):L2
두 점 사이를 가로나 세로 방향으로만 이동 가능할 때의 최단 경로 상의 길이
유클리드 거리보다 고차원에서 유용함
차원의 영향력을 줄일 수 있음(유클리드 거리와 달리 제곱을 하지 않기 때문)
유클리드 거리 : 초록색 선, 맨해튼 거리 : 빨간색, 파란색,노란색 선
군집 분석의 종류
계층적 군집화(Hierarchical Clustering)
데이터 포인트들을 거리나 유사도 기반으로 계층적으로 묶어나가는 군집화의 방법
결과는 보통 덴드로그램 형태로 표현하여 쉽게 확인 가능
군집 과정과 결과를 한눈에 확인 가능 -> 각 군집의 크기와 군집 간 관계를 파악 가능
이상치 제거에도 활용 가능 : 이상치는 다른 군집과 계층적으로 별도 분리되어 있을 가능성이 큼
모든 데이터 셋간의 거리를 비교해야하기 때문에 데이터 셋의 크기가 클수록 계산 복잡도 증가
비계층적 군집화
- 중심점 기반: k-평균 군집화
가장 직관적인 형태의 분할적 군집화
모든 데이터는 타 군집의 중심점보다 자신이 속한 군집의 중심점에 더 가까이 위치해야 함
- 밀도 기반: DBSCAN
군집을 높은 밀도를 가진 데이터들의 공간
서로 근접하거나 연결되어 있는 패턴이라할지라도 밀도가 낮다면 군집으로 인식하지 않고 무시
데이터를 중심으로 하는 원을 그리고 엡스(Eps)로 불리는 임의로 정의된 반지름 내에 다른 데이터가 몇개나 들어오는지 확인
밀도 기반 군집화는 DBSACN 이후로도 계속 발전되어 옴
-> 격자 셀 기반 군집화, CLIAUE 알고리즘, 커널 기반 DENCLUE 알고리즘, S-NN 밀도 기반 군집화 등
- 확률 기반: 퍼지 군집화
각 데이터가 특정 군집에 속할 확률을 각각 계산하면서 군집을 만들어감
잘 분리되지 못한 군집들이 다수 중첩되어 있는 골치 아픈 데이터 셋에 가장 적합함
퍼지 C-평균 군집화 : 퍼지 유사 분할이라는 기법을 활용하여 퍼지 군집을 형성
알고리즘을 지속하면서 중심점이 계속해서 갱신되게 하는 확률적 방법
- 분포 기반: 기댓값 최대화 알고리즘
혼합분포군집화, 가우시안 혼합 모형이라고도 불림
데이터 셋이 K개의 모집단 모형으로부터 얻어졌다고 간주, 그 모수와 함께 가중치로서의 최대 우도 추정량을 자료로부터 추정. 군집의 분류 기준은 각 데이터가 K개의 모집단 모형 중 어느쪽으로부터 나왔을 확률이 높은지를 바탕으로 판단
- 그래프 기반: 자기조직화지도
신경망 기술을 활용하여 고차원의 데이터를 저차원의 뉴런으로 정렬, 지도의 형태로 형상화헤서 군집화하는 방법
군집들의 형태를 암시적으로 정의하는 중심점들의 집합을 발견하는 게 목적
'데이터 분석 > Machine Learning' 카테고리의 다른 글
머신러닝_교차검증 (0) | 2023.03.07 |
---|