# 비계층적 군집분석
# K-Means 군집분석을 가장 많이 사용 : K(군집 수)를 얼마?
data <- read.csv("testdata/exam.csv", header = T, sep = ' ')
data
d_data <- dist(data, method = "euclidean")
d_data
# dist의 결과를 공간적 배치로 표현
gra_data <- cmdscale(d_data)
gra_data
plot(gra_data, type = 'n')
text(gra_data)
data$avg <- apply(data[, 2:5], 1, mean)
# K-Means : 데이터에 대한 정규화/표준화를 추천, k의 갯수:elbow 기법
data_s <- scale(data[2:5])
head(data_s,2)
# best 군집수 얻기
install.packages("NbClust")
library(NbClust)
nc <- NbClust(data_s, min.nc = 2, max.nc = 5, method = 'kmeans')
nc
plot(table(nc$Best.nc[1]))
# 모델 생성
kmodel <- kmeans(data[, c('bun', 'avg')], 4)
kmodel
table(kmodel$cluster)
cluster <- kmodel$cluster
cluster
df <- cbind(cluster, data[, c('bun', 'avg')])
df