-
클러스터링 기법 - 개념, 타당성평가, 종류Data Science/데이터마이닝 2022. 10. 5. 10:33반응형
1. 클러스터링이란
클러스터링(clustering) = 군집화 = 군집분석
비지도학습의 일종으로 class정보(label)없이 속성정보(feature,독립변수)만으로 유사한 속성을 가진 객체들을 군집으로 묶어주는 데이터마이닝 기법
- 군집 간 분산 최대화 : 서로 다른 군집간에는 멀리 떨어져있어야한다.
- 군집 내 분산 최소화 : 같은 군집 내에서는 잘 뭉쳐있어야한다.
유사성 척도
- 거리(distance) 척도 : 값이 작을수록 두객체가 유사함
- 상관계수(correlation) 척도 : 값이 클수록 두 객체가 서로 유사함
거리척도
- 유클리디안 거리 : 가장 일반적인 거리척도
- 민코프스키 거리 : 유클리디안 거리의 일반화 방법
- 마할라노비스 거리 : 정규분포에서 특정 객체의 값이 얼마나 평균에서 멀어져있는가를 나타내는 거리
변수간의 상관관계가 존재할 때 사용
2. 클러스터링 타당성 평가
명확한 정답이 있는 지도학습과 다르게 정답이 없는 비지도학습에서는 결과를 어떻게 평가할 수 있는가?
- 하나의 군집내에 유사성이 높은 객체들로 구성되었는지
- 다른 군집의 객체들과 충분한 차이가 있는지
군집 타당성 지표(clustering validity index)
군집간 거리
군집의 지름
군집의 분산
군집 타당성 지표를 통해서 군집 최적 개수 결정
2.1 엘보우 기법(Elbow Method)
군집내 오차제곱합의 합을 군집화 비용함수로 정의
군집수가 증가할수록 비용함수는 감소하며 감소비율이 급격하게 작아지는 부분(팔굼치같은 부분)이 최적의 군집수이다.
2.2 Dunn Index
(군집간 거리 최소값)/(군집 내 거리의 최대값)
군집간 거리가 멀수록, 군집내 분산은 작을수록 좋은 군집화
좋은 군집화일수록 Dunn Index는 커짐
해당 지표가 1 이상일 경우 가장 가까운 클러스터간의 거리가 가장큰 클러스터 내부간의 거리보다 크다고할 수 있음(군집화 결과가 유의하다)
2.3 Silhouette Index(실루엣 인덱스)
개별객체의 실루엣 인덱스 값을 확인하고, 클러스터별로 그 값의 분포에 문제가 없는지 확인하는 방식으로 유효성 검증
해당 객체와 내부와의 거리가 짧을수록 , 해당 객체와 외부와의 거리가 길수록 인덱스 증가
-1 ~ 1 사이의 값을 가짐 ( 객체와 내부간의 거리 > 객체와 외부간의 거리 일경우 인덱스는 음수 값)
일반적으로 0.5 이상일 경우 군집화가 타당하다고 평가함
3. 클러스터링의 종류
3.1 중심기반 클러스터링
동일 클러스터에 속하는 객체는 특정 중심을 기준으로 분포할 것이라는 기본 전제
=> 클러스터의 모양이 원의 형태로 형성 (단, 계층적의 경우 다른 분포를 잡아내기도 함)
3.1.1 계층적 클러스터링
유사도가 높은 객체들을 단계적으로 묶어나가는 방식
사전에 군집 수(k)를 정하지 않고 단계적으로 군집 트리를 제공
군집 연결법
- 단일연결법 : 군집 a,b간의 유사성 척도로 두 군집간의 가장 가까운 객체간 거리 사용
- 완전연결법 : 군집 a,b간의 유사성 척도로 두 군집간의 가장 먼 객체간 거리 사용
- 평균연결법 : 군집 a,b간의 평균좌표간의 거리 사용
- 중심연결법 : 군집 a,b간의 중심좌표간의 거리 사용
Agglomerative clustering 클러스터링 등
3.1.2 비계층적 클러스터링(분할적 클러스터링)
전체 객체들을 한번에 군집화하는 방법
사전에 군집수 정의가 필요하며 임의의 초기값에 따라서 결과가 달라짐
데이터 분포가 특이할 경우 군집이 잘 이루어지지 않는다
단순하며 계산 복잡성이 낮다
K-means 클러스터링 등
3.2 밀도기반 클러스터링
동일 클러스터에 속하는 객체는 서로 근접하게 분포할 것이라는 기본 전제
=> 불특정한 모양의 클러스터 형성
객체가 세밀하게 몰려 있어서 밀도가 높은 부분을 군집화하는 방식
군집수 지정 미필요하며, 불특정 모양의 군집도 발견 가능
잡음(noise)의 분류가 가능하며, 이상치에의해 군집화 성능이 하락하는 것을 방지
DBSCAN(Density-based spatial clustering of applications with noise) 클러스터링 등
반응형'Data Science > 데이터마이닝' 카테고리의 다른 글
Linear Regression 코드 주석 (0) 2022.10.18 파이썬에서 시간값 다루기 - Datetime, Timedelta (0) 2022.10.07 연관규칙(Association rules) 파이썬 구현하기 mlxtend.frequent_patterns.apriori (0) 2022.10.04 데이터 형(data type) 종류 (0) 2022.09.29 [XAI/Python] SHAP 파이썬 라이브러리 사용 코드 예시(SHapley Additive exPlanations) (0) 2022.07.15