본문 바로가기
연륜연대학/R Coding

Hierarchical Clustering using R

by Hyun-min & Tree ring 2019. 6. 20.

- 계층적 군집분석(Hierarchical Clustering) 
- 거리가 가장 가까운 대상부터 결합하여 나무모양의  
- 계층구조를 상향식(Bottom-up)으로 만들어가면서 군집을 형성

 

 

1. common.interval 을 이용한 missing Ring을 제외하기

wapd.fh <- read.fh("wapd_raw.fh")

wapd.s <- common.interval(wapd.fh, type="series", make.plot=TRUE)

 

2. data 만들기

data <- wapd.s 

3. 행열 바꾸기 #Matrix Transpose

data02 <- t(data)

 

 

4. 유클리드 거리 생성 함수 // 거리의 계산 (Calcuate distance)

d02 <- dist(data02, method = "euclidean")

 

 

 

4. 

 알고리즘의 종류 : single linkage, complete linkage, average linkage, controid, Ward

   
single linkage 한 군집의 점과 다른 군집의 점 사이의 가장 짧은 거리(shortest distance)
complete linkage 한 군집의 점과 다른 군집의 점 사이의 가장 긴 거리(longest distance)
average linkage 한 군집의 점과 다른 군집의 점 사이의 평균 거리. UPGMA(unweighted pair group mean averaging)이라고도 한다.
controid 두 군집의 centroids(변수 평균의 벡터) 사이의 거리.관측치가 하나인 경우 centroid는 변수의 값이 된다
Ward 모든 변수들에 대하여 두 군집의 ANOVA sum of square를 더한 값

hc02 <- hclust(d02, method = "complete" )

hc03 <- hclust(d02, method = "ward.D2" )

 

 

 

5. 덴드로그램 시각화

 

plot(hc02, cex = 0.6, hang = -1)
rect.hclust(hc02, k=3, border="red")  //

 


 



## 프로그램 시작, 패키지 불러오기, 작업폴더 설정 ##

> library(dplR)
> library(utils)
> setwd("/R/")

 

## 데이터 만들기 ##

wapd.fh <- read.fh("wapd_raw.fh")

> data02 <- t(data)
> d02 <- dist(data02, method = "euclidean")

 

## 군집분석 ##
> hc02 <- hclust(d02, method = "complete" )
> plot(hc02, cex = 0.6, hang = -1)
rect.hclust(hc02, k=3, border="red") 

 

## 시각화 ##
> hc03 <- hclust(d02, method = "ward.D2" )

> plot(hc03, cex = 0.6, hang = -1)
rect.hclust(hc03, k=3, border="red") 

 

 

 

 


## 데이터 만들기 ##
kopd.fh <- read.fh("/Users/user/Documents/R/all_master_20190618_single.fh")
kopd.s <- common.interval(kopd.fh, type="series", make.plot=TRUE)

data <- t(kopd.s) 
data
d <- dist(data, method = "euclidean")
d

## 군집분석 complete linkage ##
hc <- hclust(d, method = "complete" ) 
plot(hc, cex = 0.6, hang = -1) 
rect.hclust(hc, k=3, border="red") 

 

## 군집분석 ward ##
hc_ward <- hclust(d, method = "ward.D2" )
plot(hc_ward, cex = 0.6, hang = -1) 
rect.hclust(hc_ward, k=3, border="red") 


 

 

http://leoslife.com/archives/4472

 

계층적 군집 분석 (Hierarchical Clustering) – Today I Learned

Hierarchical Clustering 비지도학습. 군집분석 기법 계층적 군집 방법(non-hierarchical clustering)은 군집 수 k를 사전에 지정하지 않음 유형 단일연결법(single linkage method) 두 군집의 모든 객체 쌍의 거리 중 가장 가까운 거리를 사용 완전연결법(complete linkage method) 두 군집의 모든 객체 쌍의 거리 중 가장 먼 거리를 사용 평균연결법(average linkage method

leoslife.com

 

https://blog.naver.com/jaychun01/221402746143

 

[R] 통계분석 (clustering)

cluster analysis: 데이터셋의 개별 케이서들을 서로 간의 유사도를 토대로 동질적인 집단으로 묶어주는 데...

blog.naver.com

https://www.r-bloggers.com/how-to-perform-hierarchical-clustering-using-r/

 

How to Perform Hierarchical Clustering using R

What is Hierarchical Clustering? Clustering is a technique to club similar data points into one group and separate out dissimilar observations into different groups or clusters. In Hierarchical Clustering, clusters are created such that they have a predete

www.r-bloggers.com

 

 

 

'연륜연대학 > R Coding' 카테고리의 다른 글

R 실습_능동형 지도 제작 with OSM  (0) 2022.03.02
통계의 기본개념 #1, 자료와 변수 개념  (0) 2020.05.18
dplR 패키지 설치하기  (0) 2019.06.20
R 설치하기  (0) 2019.06.20
R 시작하다.  (0) 2019.03.31