본문 바로가기
공부/R & Python

13-2. 군집분석 - 계층적 군집분석 -

by 드인 2020. 3. 5.

13-2. 군집분석

- 계층적 군집분석 -


1) 계층적 군집분석

- 사전에 군집 수 k를 정하지 않고 단계적으로 군집을 형성한다.

- 유사한 객체들을 군집으로 묶고, 그 군집을 기반으로 그와 유사한 군집을 새로운 군집으로 묶어 가면서 군집을 계층적으로 구성함

2) 단일연결법

- 군집 i와 군집 j의 유사성 척도로 두 군집의 모든 객체 쌍의 거리 중 가장 가까운 거리를 사용

- 객체 쌍의 가장 짧은 거리가 작을수록 두 군집이 더 유사하다고 평가

3) 그 외 연결법

4) 단일연결법 예제

- 단일연결법을 사용한 군집화 과정 (유클리디안 거리 사용)

- 덴드로그램은 군집 그룹과 유사성 수준을 표시하는 트리 다이어그램

- 군집이 어떻게 형성되는지 확인하고 형성된 군집의 유사성 수준을 평가

5) 완전연결법 vs 평균연결법

- 데이터 설명

- 1833년 영국 Lancashire 방직 공장 임금

- DAAG package built in 데이터

- 총 51개의 객체

 

help("wages1833")

- 객체별 5개의 속성

 (1) 나이(age)

 (2) 남성 근로자 수(mnum)

 (3) 남성 근로자 평균 임금(mwage)

 (4) 여성 근로자 수(fnum)

 (5) 여성 근로자 평균 임금(fwage)

 

head(wages1833, n=10)

 

- 데이터 불러오기 (DAAG package)

dat1<-wages1833
dat1<-na.omit(dat1)

결측치 데이터 삭제 (전처리)


str(dat1)

 

- 계층적 군집분석 : hclust(거리계산결과, method=" ")

dist_data<-dist(dat1)

유클리디안 거리 사용

 

(1) 완전연결법 적용결과 (거리 계산은 유클리디안 사용)

hc_a <- hclust(dist_data, method = "complete")
plot(hc_a, hang = -1, cex=0.7, main = "complete")

single(단일), complete(완전), average(평균), centroid(중심)

(2) 평균연결법 적용결과 (거리 계산은 유클리디안)

hc_c <- hclust(dist_data, method = "average")
plot(hc_c, hang = -1cex=0.7main = "average")

라벨은 일정한 위치로 고정 / 글자 크기 / 메인타이틀

6) 워드 연결방법 (Ward's method)

(3) 워드방법을 적용한 결과 (거리 계산은 유클리디안)

hc_c <- hclust(dist_data, method = "ward.D2")
plot(hc_c, hang = -1, cex=0.7, main = "Ward's method")