상세 컨텐츠

본문 제목

R - diamonds dataset을 활용한 k-means 분석 예제

데이터 분석·개발/데이터 분석

by 에스프리터 2018.05.17 18:26

본문






이번에는 다이아몬즈 데이터셋으로 계층적 군집 현황을 파악 후 k-means 알고리즘을 적용해 보는 예제입니다.


코드

# 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)  

# 데이터값만 넣으면 알아서 나눔



샘플 데이터



본 포스팅은 KIC 캠퍼스에서 박영권 강사의 지도하에 공부하며 작성한 리포트입니다.
혹시 잘못된 내용이 있거나 문제 소지시 댓글 남겨주시면 조치하겠습니다.






태그

관련글 더보기

댓글 영역