Non Hierarki (hal 178)
Panggil data bisa dengan cara mengimport DAtaset atau mengetikan manual di layar console atau di script
Untuk latihan gunakan data USArrest
Normalization data jika satuan data berbeda beda atau jika range varians antar atribut sangat berbeda jauh
USArrScale <- scale(USArrests, scale=T)
Tentukan K=3
set.seed(123) #biar hasilnya tidak berubah
kMres <- kmeans(USArrScale, centers=3)
Menampilkan hasil
kMres$cluster
##        Alabama         Alaska        Arizona       Arkansas     California 
##              1              1              1              3              1 
##       Colorado    Connecticut       Delaware        Florida        Georgia 
##              1              3              3              1              1 
##         Hawaii          Idaho       Illinois        Indiana           Iowa 
##              3              2              1              3              2 
##         Kansas       Kentucky      Louisiana          Maine       Maryland 
##              3              2              1              2              1 
##  Massachusetts       Michigan      Minnesota    Mississippi       Missouri 
##              3              1              2              1              1 
##        Montana       Nebraska         Nevada  New Hampshire     New Jersey 
##              2              2              1              2              3 
##     New Mexico       New York North Carolina   North Dakota           Ohio 
##              1              1              1              2              3 
##       Oklahoma         Oregon   Pennsylvania   Rhode Island South Carolina 
##              3              3              3              3              1 
##   South Dakota      Tennessee          Texas           Utah        Vermont 
##              2              1              1              3              2 
##       Virginia     Washington  West Virginia      Wisconsin        Wyoming 
##              3              3              2              2              3
kMres$size
## [1] 20 13 17
Plot hasil clustering
pairs(USArrScale,col=c(1,3)[kMres$cluster],pch=16)

# Pada gambar di atas dapat dilihat hasil pengelompokkan kelompok 1(hitam), kelompok 2(merah) dan kelompok 3(hijau). Negara bagian yang termasuk ke dalam kelompok 1 adalah negara dengan tingkat kejahatan yang rendah, kelompok 2 medium, dan kelompok 3 sangat tinggi
Cluster validation (hal 184)
Within cluster variation
set.seed(12)

# Agar hasilnya tidak berubah ubah
Hitung dan plot within sum square untuk k=2 sampai dengan k=15
k.max=15 #maksimal jumlah cluster
Hitung total within cluster variasi untuk setiap nilai k
wss<-sapply(1:k.max,function(k){
kmeans(USArrScale,k,nstart=10)$tot.withinss})
wss
##  [1] 196.00000 102.86240  78.32327  56.40317  48.94420  42.96386  38.38847
##  [8]  34.65849  30.75887  26.18348  23.74803  21.57556  20.74192  18.55163
## [15]  16.81152
plot(1:k.max,wss,type = "b", pch=19,
frame=FALSE, xlab="Jumlah cluster k", ylab="Total within cluster variation")
abline(v=4,lty=2)

# Dari contoh di atas dapat dilihat bahwa jumlah klaster yang optimal adalah 4 karena penambahan jumlah klaster tidak membawa pengaruh banyak atas variasi di dalam klaster tersebut
CLUSTER PROFILING
PCA
library(advclust)
pca = prcomp(USArrests, scale = T)
pca
## Standard deviations (1, .., p=4):
## [1] 1.5748783 0.9948694 0.5971291 0.4164494
## 
## Rotation (n x k) = (4 x 4):
##                 PC1        PC2        PC3         PC4
## Murder   -0.5358995  0.4181809 -0.3412327  0.64922780
## Assault  -0.5831836  0.1879856 -0.2681484 -0.74340748
## UrbanPop -0.2781909 -0.8728062 -0.3780158  0.13387773
## Rape     -0.5434321 -0.1673186  0.8177779  0.08902432
kMres2 = kmeans(USArrests,centers = 3)
pairs(USArrests, col=c(1:4)[kMres2$cluster],pch = 16)

##### Biplot

biplot(pca, clust = kMres2$cluster, rowname = row.names(USArrests), legendname = "group")

##### CATATAN : radarPlot tidak dapat digunakan