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.
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:
## '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 ...
## 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
## 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
Standarisasi dilakukan agar setiap variabel memiliki skala yang sama sehingga tidak ada variabel yang mendominasi proses clustering.
## 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
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")Uji multikolinearitas dilakukan menggunakan Variance Inflation Factor (VIF).
## 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
## Assault UrbanPop Rape
## 1.794715 1.204229 2.015462
Interpretasi: Nilai VIF < 10 menunjukkan tidak terdapat multikolinearitas yang serius.
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.
Berdasarkan metode elbow diperoleh jumlah cluster optimal sebanyak 3 cluster.
## 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.
##
## 1 2 3
## 20 13 17
Visualisasi hasil clustering menggunakan scatter plot.
## 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.
Interpretasi Visualisasi Scatter Plot
Pada grafik visualisasi pertama (Murder vs Assault), terlihat bahwa data terbagi menjadi tiga kelompok cluster yang ditandai dengan warna berbeda.
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.
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.
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:
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.