academy.csv
0.00MB

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 데이터 로드
academy <- read.csv("c:/data/academy.csv")
academy
 
# 학생 번호 빼놓기
student <- academy[,'학생번호']
student
 
# 수학 영어 점수만 사용
academy <- academy[,c(3,4)]
academy
# k-means 4 클러스터링 : 수학o영어o / 수학o영어x / 수학x영어o / 수학x영어x
km <- kmeans(academy,4)
km
 
library(factoextra)
fviz_cluster(km,data=academy,stand=T)
 
cbind(student,academy, km$cluster)
cs

 

 

stand=T인 경우는 평균을 0으로 표준화함

 

 

1
2
fviz_cluster(km,data=academy,stand=F)
 
cs

 

stand=F인 경우는 x축, y축 점수를 그대로 보여줌

 

 

 


 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 데이터 로드
academy <- read.csv("c:/data/academy.csv")
academy
 
# 학생 번호 빼놓기
student <- academy[,'학생번호']
student
 
# 수학 영어 점수만 사용
academy <- academy[,c(3,4,6)]
academy
# k-means 4 클러스터링 : 수학o영어o / 수학o영어x / 수학x영어o / 수학x영어x
km <- kmeans(academy,4)
km
 
library(factoextra)
fviz_cluster(km,data=academy,stand=T)
 
cbind(student,academy, km$cluster)
cs

 

fviz함수 자체가 PCA 기반이므로 컬럼이 3개 이상이면 차원으로 넘어감

 

x축의 Dim1(70.7%)은 약 71%만큼 클러스터링에 영향을 주었다는 뜻이다. 이것도 정규화를 하고 안하고에 따라서 Dim1+Dim2가 100%(stand=F)이거나 100%가 안되거나(stand=T)한다. 표준화를 하면 조금 더 균등하게 차원분석을 통해 클러스터링을 하나, 표준화를 하지 않으면 대부분 Dim1에 의존적으로 클러스터링한다.

 

stand=F인 경우

 

+ Recent posts