- 군집화
- 군집화 알고리즘
K-means, Mean shift, Gaussian mixture model, DBSCAN
1. K-means Clustering
군집 중심점(Centroid) 기반 클러스트링
각 데이터들은 가장 가까운 중심점에 소속된다.
중심점이 각 소속 데이터들의 평균으로 이동한다.
다시, 각 데이터들은 이동된 중심점 기준으로 가장 가까운 중심점에 소속
중심점을 이동했지만 중심점 소속 변경이 없으면 군집화 완료
장점: 일반적인 군집화에서 가장 많이 활용됨, 대용량 데이터에도 활용
단점: 거리기반 알고리즘이어셔, 속성의 개수가 많으면 정확도 떨어짐
이상치 데이터에 취약
- 사이킷런 KMeans 클래스
- 군집 평가: 실루엣 분석
각 군집간 거리가 얼마나 효율적으로 분리돼 있는가?
개별 데이터는 "실루엣 계수" 를 가지고 있음
aij: 클러스터 A의 i번째 데이터에서 자시닝 속한 클러스터 내의 다른 데이터 포인트까지의 거리
ai: i번째 데이터에서 자신이 속한 클러스터 내의 다른 데이터 포인트들의 거리 평균
0에 가까울 수록 근처의 군집과 가까워진다는 뜻
- 값은 아예 다른 군집에 데이터 포인트가 할당됐음을 뜻.
2. Mean shift 군집화
데이터 포인트들이 데이터 '분포'가 높은 곳으로 이동하면서 군집화 진행
주변 데이터들과의 거리값을 kernel함수값으로 입력한 뒤, 그 반환값을 현재 위치에서 update
- 확률밀도 추정방법
1. 모수적 추정
2. 비모수적 추정
- 히스토그램 밀도 추정(Bin의 경계에서 불연속성이 나타나는 문제)
- KDE
개별데이터들에 커널함수를 적용한 뒤,
커널함수들의 적용값을 모두 합한 뒤에
개별 관특 데이터 건수로 나누어 확률밀도 예측
(cf) 가우시안 커널함수
대표적인 커널함수
- Mean shift는 bandwith가 클수록 적은 수의 클러스터링 중심점을 가지게 됨.
- 최적의 bandwith 계산을 위해 estimate_bandwith()
3. GMM
- 거리기반 k-means의 문제점
특정중심점을 기반으로 나뉘어져 있지 않은 데이터 셋이면 군집화가 어려움(겹치는 형태, 선형 형태)
- GMM개요
원본데이터가 서로다른 정규분포로 결합되어 있다고 가정
어떤 데이터가 어떤 정규분포에 속하는지를 찾기.
- GMM 모수추정
데이터가 특정 정규 분포에 해당 될 확률을 추정하는 것.
- 개별 정규분호의 모수인 평균과 분산이 더이상 변경되지 않고,
각 개별 데이터들이 이전 정규 분포 소속이 더이상 변경되지 않으면
그것으로 최종 군집화를 결정하고, 그렇지 않으면 계속 EM반복을 수행
4. DBSCAN
- 데이터 밀도 차이를 기반 알고리즘으로 하고 있어서
복잡한 기하학적 분포도를 가진 데이터에 대해서도 군집화를 잘 수행
- 입실론 주변 영역: 개별 데이터를 중심으로 입실론 반경을 가지는 원형의 영역
최소 데이터 개수: 개별 데이터의 입실론 주변영역에 포함되는 타 데이터 개수
- 절차
1) 입실론 기준으로 코어포인트 순차적으로 찾기
2) 코어포인트를 찾을 때마다 코아포인트끼리 연결하면서 군집 영역을 확장해나감.
3) 이웃으로 코어포인트를 가지는 포인트를 Border 포인트라고 함
- 파라미터: eps, min_samples(자신의 데이터 포함한 개수)
- 군집화 실습 [고객 세그먼테이션]
RFM 적용
Rececny: 가장 최근 구입일부터 오늘까지 기간
Frequency: 상품 구매 횟수
Moneytary value: 총 구매 금액
ref: "파이썬 머신러닝 완벽가이드", 권철민, 위키북스