# diamonds dataset으로 계층적 군집분석 후 군집수를 파악 후 k-means 알고리즘에 적용해 군집파악
library(ggplot2)
head(diamonds)
dim(diamonds) #53940행 10열 짜리 데이터 (양이많음)
#sample
t<-sample(1:nrow(diamonds),1000)
test <-diamonds[t,]
names(test)
#군집 파악용 변수 추출(변수 일부만 추출)
mydia <-test[c("price","carat","depth","table")]
head(mydia)
#계층적 군집작업
result <-hclust(dist(mydia),method = "average")
result
#계층적 군집분석 확인
plot(result,hang=-1)
#비계층적 군집분석 (분할군집) -k=3
result2 <-kmeans(mydia,3)
result2 # 3개의 그룹으로 나눠져있는것을 확인
result2$cluster # 3개의 그룹으로 나눠져있는것을 확인
mydia$Cluster <-result2$cluster
head(mydia)
#변수 간 상관 관계
cor(mydia[, -5], method="pearson")
plot(mydia[, -5])
#corrgram
library(corrgram)
corrgram(mydia[,-5])
corrgram(mydia[,-5],upper.panel = panel.conf)
corrgram(mydia[,-5],lower.panel = panel.conf)
#비계층적 군집 시각화
plot(mydia[(c("carat","price"))],col=mydia$Cluster)
#중심점 표시
points(result2$centers[,c("carat","price")],col=c(1,2,3),pch=8,cex=5)
# 데이터값만 넣으면 알아서 나눔
댓글 영역