K-Means Clustering

Metode K-Means Clustering merupakan salah satu algoritma dalam data mining dan machine learning yang digunakan untuk mengelompokkan data ke dalam beberapa kelompok berdasarkan tingkat kemiripan antar objek. Algoritma ini termasuk dalam kategori unsupervised learning, yaitu metode pembelajaran yang tidak memerlukan label atau kategori sebelumnya pada data.

1. Data

Dataset yang digunakan dalam analisis ini adalah USArrests yang merupakan dataset bawaan dari R. Data ini berisi statistik kriminalitas pada 50 negara bagian di Amerika Serikat pada tahun 1973.

Variabel dalam dataset ini adalah:

  • Murder : jumlah pembunuhan per 100.000 penduduk
  • Assault : jumlah penyerangan per 100.000 penduduk
  • UrbanPop : persentase populasi perkotaan
  • Rape : jumlah pemerkosaan per 100.000 penduduk
data(USArrests)
str(USArrests)
## 'data.frame':    50 obs. of  4 variables:
##  $ Murder  : num  13.2 10 8.1 8.8 9 7.9 3.3 5.9 15.4 17.4 ...
##  $ Assault : int  236 263 294 190 276 204 110 238 335 211 ...
##  $ UrbanPop: int  58 48 80 50 91 78 77 72 80 60 ...
##  $ Rape    : num  21.2 44.5 31 19.5 40.6 38.7 11.1 15.8 31.9 25.8 ...
head(USArrests)
##            Murder Assault UrbanPop Rape
## Alabama      13.2     236       58 21.2
## Alaska       10.0     263       48 44.5
## Arizona       8.1     294       80 31.0
## Arkansas      8.8     190       50 19.5
## California    9.0     276       91 40.6
## Colorado      7.9     204       78 38.7
summary(USArrests)
##      Murder          Assault         UrbanPop          Rape      
##  Min.   : 0.800   Min.   : 45.0   Min.   :32.00   Min.   : 7.30  
##  1st Qu.: 4.075   1st Qu.:109.0   1st Qu.:54.50   1st Qu.:15.07  
##  Median : 7.250   Median :159.0   Median :66.00   Median :20.10  
##  Mean   : 7.788   Mean   :170.8   Mean   :65.54   Mean   :21.23  
##  3rd Qu.:11.250   3rd Qu.:249.0   3rd Qu.:77.75   3rd Qu.:26.18  
##  Max.   :17.400   Max.   :337.0   Max.   :91.00   Max.   :46.00

2. Standarisasi Data

Standarisasi dilakukan agar setiap variabel memiliki skala yang sama sehingga tidak ada variabel yang mendominasi proses clustering.

data_scaled <- scale(USArrests)

head(data_scaled)
##                Murder   Assault   UrbanPop         Rape
## Alabama    1.24256408 0.7828393 -0.5209066 -0.003416473
## Alaska     0.50786248 1.1068225 -1.2117642  2.484202941
## Arizona    0.07163341 1.4788032  0.9989801  1.042878388
## Arkansas   0.23234938 0.2308680 -1.0735927 -0.184916602
## California 0.27826823 1.2628144  1.7589234  2.067820292
## Colorado   0.02571456 0.3988593  0.8608085  1.864967207

3. Deteksi Outlier Multivariat

Deteksi outlier multivariat dilakukan menggunakan Mahalanobis Distance.

center <- colMeans(data_scaled)
cov_matrix <- cov(data_scaled)

mahal_dist <- mahalanobis(data_scaled, center, cov_matrix)

cutoff <- qchisq(0.975, df = ncol(data_scaled))

outlier <- mahal_dist > cutoff

sum(outlier)
## [1] 2

Visualisasi outlier

plot(mahal_dist, type="h",
     main="Mahalanobis Distance",
     ylab="Distance")

abline(h=cutoff, col="hotpink")

4. Uji Multikolinearitas

Uji multikolinearitas dilakukan menggunakan Variance Inflation Factor (VIF).

library(car)
## Warning: package 'car' was built under R version 4.4.2
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.4.2
model <- lm(Murder ~ Assault + UrbanPop + Rape, data=USArrests)

vif(model)
##  Assault UrbanPop     Rape 
## 1.794715 1.204229 2.015462

Interpretasi: Nilai VIF < 10 menunjukkan tidak terdapat multikolinearitas yang serius.

5. Penentuan Jumlah Cluster

Jumlah cluster optimal ditentukan menggunakan Elbow Method.

wss <- numeric(10)

for(i in 1:10){
  kmeans_model <- kmeans(data_scaled, centers=i, nstart=25)
  wss[i] <- kmeans_model$tot.withinss
}

plot(1:10, wss,
     type="b",
     pch=19,
     xlab="Jumlah Cluster",
     ylab="Within Cluster Sum of Squares",
     main="Metode Elbow")

Interpretasi: Jumlah cluster optimal ditentukan dari titik “siku” (elbow) yaitu titik dimana penurunan nilai Within Cluster Sum of Squares (WCSS) mulai melambat secara signifikan.

6. Hasil Cluster Optimal

Berdasarkan metode elbow diperoleh jumlah cluster optimal sebanyak 3 cluster.

set.seed(123)

kmeans_result <- kmeans(data_scaled, centers=3, nstart=25)

kmeans_result
## K-means clustering with 3 clusters of sizes 20, 13, 17
## 
## Cluster means:
##       Murder    Assault   UrbanPop       Rape
## 1  1.0049340  1.0138274  0.1975853  0.8469650
## 2 -0.9615407 -1.1066010 -0.9301069 -0.9667633
## 3 -0.4469795 -0.3465138  0.4788049 -0.2571398
## 
## Clustering vector:
##        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 
## 
## Within cluster sum of squares by cluster:
## [1] 46.74796 11.95246 19.62285
##  (between_SS / total_SS =  60.0 %)
## 
## Available components:
## 
## [1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
## [6] "betweenss"    "size"         "iter"         "ifault"

Menambahkan hasil cluster ke data.

USArrests_cluster <- USArrests
USArrests_cluster$cluster <- kmeans_result$cluster

head(USArrests_cluster)
##            Murder Assault UrbanPop Rape cluster
## Alabama      13.2     236       58 21.2       1
## Alaska       10.0     263       48 44.5       1
## Arizona       8.1     294       80 31.0       1
## Arkansas      8.8     190       50 19.5       3
## California    9.0     276       91 40.6       1
## Colorado      7.9     204       78 38.7       1

Melihat jumlah anggota pada setiap cluster.

table(USArrests_cluster$cluster)
## 
##  1  2  3 
## 20 13 17

7. Visualisasi Hasil Cluster

Visualisasi hasil clustering menggunakan scatter plot.

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3
ggplot(USArrests_cluster,
       aes(x=Murder,
           y=Assault,
           color=factor(cluster))) +
  geom_point(size=3) +
  labs(color="Cluster",
       title="Visualisasi Hasil K-Means Clustering")

Visualisasi tambahan menggunakan pasangan variabel.

pairs(USArrests_cluster[,1:4],
      col=USArrests_cluster$cluster,
      pch=19)

Interpretasi Hasil

Interpretasi Visualisasi Scatter Plot

Pada grafik visualisasi pertama (Murder vs Assault), terlihat bahwa data terbagi menjadi tiga kelompok cluster yang ditandai dengan warna berbeda.

  1. Cluster 1 (Merah) Cluster pertama menunjukkan negara bagian yang memiliki tingkat kriminalitas relatif tinggi, khususnya pada variabel Murder dan Assault. Titik-titik pada cluster ini berada pada nilai Murder dan Assault yang lebih besar dibandingkan cluster lainnya. Hal ini menunjukkan bahwa negara bagian yang termasuk dalam cluster ini memiliki tingkat kekerasan yang lebih tinggi dibandingkan dengan kelompok lainnya.

  2. Cluster 2 (Hijau) Cluster kedua terdiri dari negara bagian dengan tingkat kriminalitas relatif rendah. Hal ini terlihat dari nilai Murder dan Assault yang cenderung kecil dibandingkan cluster lainnya. Kelompok ini dapat diinterpretasikan sebagai wilayah dengan tingkat kejahatan yang relatif rendah.

  3. Cluster 3 (Biru) Cluster ketiga berada di antara cluster pertama dan kedua. Nilai variabel Murder dan Assault berada pada tingkat menengah, sehingga cluster ini menggambarkan wilayah dengan tingkat kriminalitas sedang.

Interpretasi Scatter Plot Matrix

Grafik kedua menampilkan hubungan antar seluruh variabel yaitu Murder, Assault, UrbanPop, dan Rape.

Dari grafik tersebut dapat diamati beberapa pola:

  1. Terdapat hubungan positif antara variabel Murder, Assault, dan Rape, dimana peningkatan salah satu variabel cenderung diikuti peningkatan variabel lainnya.
  2. Cluster dengan nilai Murder dan Assault tinggi juga cenderung memiliki nilai Rape yang lebih tinggi, yang menunjukkan bahwa wilayah dengan tingkat kekerasan tinggi juga memiliki tingkat kejahatan lainnya yang relatif tinggi.
  3. Variabel UrbanPop menunjukkan variasi yang cukup besar pada setiap cluster, sehingga tingkat urbanisasi tidak sepenuhnya menentukan tingkat kriminalitas pada dataset ini.

Kesimpulan

Berdasarkan hasil analisis K-Means Clustering pada dataset USArrests, data negara bagian dapat dikelompokkan menjadi tiga cluster berdasarkan kemiripan karakteristik variabel Murder, Assault, UrbanPop, dan Rape. Hasil metode Elbow menunjukkan bahwa jumlah cluster optimal adalah k = 3. Pengelompokan tersebut menggambarkan adanya kelompok wilayah dengan tingkat kriminalitas tinggi, sedang, dan rendah. Dengan demikian, metode K-Means Clustering mampu mengidentifikasi pola pengelompokan wilayah berdasarkan tingkat kriminalitas yang memiliki karakteristik yang serupa.