Clustering์ Unsupervised learning ๊ธฐ๋ฒ์ ํด๋นํ๋ค.
๊ทธ๋ง์ ์ฆ ๋ฐ์ดํฐ๋ค์ ์ ๋ต์ ์ ์ ์๋ค๋ ๋ง์ธ๋ฐ... ๋ฌด์จ๋ง์ธ๊ฐํ๋ฉด
๊ฐ ๊ฐ์ฒด์ ๊ทธ๋ฃน ์ ๋ณด ์์ด ๋น์ทํ ๊ฒ๋ผ๋ฆฌ ๋ฌถ๋๋ค๋ ๋ง์ด๋ค.
์๋ฅผ ๋ค์ด ์๋์ ๊ฐ์ ์ฌ์ฏ ๋ช
์ ๋ฐ์ดํฐ๊ฐ ์๋ค๊ณ ํ์ ๋,
col2์ col3์ ๋ฐ์ดํฐ๋ง์ผ๋ก ๋น์ทํ ๊ฐ์ฒด๋ผ๋ฆฌ ๋ฌถ๋ ๊ฒ์ ๊ตฐ์งํ-Clustering์ด๋ผ ํ๊ณ
col1, col2, col3 ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ์ฌ ํค์ ๋ชธ๋ฌด๊ฒ๋ก ๋จ/๋
๋ฅผ ํ๋จํ๋ ๋ฃฐ์ ๋ง๋๋ ๊ฒ์ ๋ถ๋ฅ-Classification์ด๋ผ๊ณ ํ๋ค.
| gender | height | weight |
|---|---|---|
| ๋จ | 178cm | 80kg |
| ๋จ | 182cm | 70kg |
| ๋จ | 171cm | 75kg |
| ์ฌ | 162cm | 60kg |
| ์ฌ | 170cm | 58kg |
| ์ฌ | 158cm | 48kg |
K-means Clustering์ ๊ฐ ๊ฐ์ฒด๊ฐ์ ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ๊น์ด ๊ฒ๋ผ๋ฆฌ K ๊ฐ๋ก ๊ตฐ์งํํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
๊ฐ ๊ตฐ์ง์ ํ๋์ ์ค์ฌ์ ๊ฐ๋๋ฐ, ์ค์ฌ๊ณผ ๊ฐ๊น์ด ๊ฒ๋ผ๋ฆฌ ๋ชจ์ด๋ ๊ฒ์ด๋ค.
์์ผ๋ก ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ์
๋๋์ด์ง ๊ตฐ์ง๋ค์ ๊ฐ์ฒด๊ฐ์ ๊ฑฐ๋ฆฌ๋ฅผ ์ต์ํํ๋ Cluster ๋ฅผ ์ฐพ๋๊ฒ ์ฃผ ๋ชฉ์ ์ผ๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. ์ฌํํ ์๋ฆฌ
Data๋ ์ด๋ฏธ ์ฃผ์ด์ ธ์๋ค๊ณ ๊ฐ์ ํ๊ณ
Data_scaled <- scale(Data, center = TRUE, scale = TRUE) # ๋ฐ์ดํฐ ์ ๊ทํ
Data_clValid <- clValid(Data_scaled, 2:10, clMethods ="kmeans", validation = "internal",maxitems=nrow(Data_scaled))
summary(Data_clValid )
์ถ๋ ฅ์ ๋ค์๊ณผ ๊ฐ์ด ๋จ
Clustering Methods:
kmeans
Cluster sizes:
2 3 4 5 6 7 8 9 10
Validation Measures:
2 3 4 5 6 7 8 9 10
kmeans Connectivity 81.2151 108.2623 155.4992 187.2956 178.0631 202.9147 288.6968 321.1198 414.0401
Dunn 0.0047 0.0036 0.0042 0.0020 0.0055 0.0060 0.0042 0.0030 0.0025
Silhouette 0.3622 0.5029 0.5467 0.5758 0.5990 0.5438 0.5343 0.5037 0.4607
Optimal Scores:
Score Method Clusters
Connectivity 81.2151 kmeans 2
Dunn 0.0060 kmeans 7
Silhouette 0.5990 kmeans 6
๊ฐ index๋ณ๋ก ์ต์ ์ ํด๋ฌ์คํฐ๋ฅผ ์ถ๋ ฅํด์ค๋ค.
ํด๋ฌ์คํฐ ์๋ฅผ 6์ผ๋ก ์ ์ ํ๋ค๊ณ ๊ฐ์ ํ๊ณ K-means ํด๋ฌ์คํฐ๋ง์ ์ ์ฉํ๊ณ plot์ ๊ทธ๋ฆฌ๋ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๋ค.
Data_kmc <- kmeans(Data_scaled,6)
plot(Data_scaled, col = Data_kmc $cluster)