Partitional clustering
Analysis and Predictive Modeling
1 Pendahuluan
1.1 Pengertian
Partitional clustering adalah metode pengelompokan data di mana sekumpulan objek data dibagi menjadi beberapa cluster (kelompok) yang tidak saling tumpang-tindih (non-overlapping). Artinya, setiap data hanya berada di satu cluster saja – tidak ada data yang “terbagi” ke lebih dari satu cluster.
1.2 Pengenalan Dataset
Dataset Mall Customers adalah dataset publik yang digunakan untuk analisis customer segmentation dengan teknik clustering. Dataset ini berisi informasi demografis dan perilaku belanja pelanggan dari sebuah pusat perbelanjaan.
Dataset berasal dari repository GitHub berikut:
Link: https://github.com/jeffrey125/Mall-Customer-Segmentation/blame/master/Mall_Customers.csv
Dataset terdiri dari 200 baris dan 5 kolom:
| Kolom | Tipe Data | Deskripsi |
|---|---|---|
| CustomerID | Integer | ID unik untuk setiap pelanggan. Tidak digunakan untuk modeling. |
| Gender | Categorical (Male/Female) | Jenis kelamin pelanggan. |
| Age | Integer | Usia pelanggan. |
| Annual Income (k$) | Integer | Pendapatan tahunan dalam ribuan dolar. |
| Spending Score (1–100) | Integer | Skor tingkat spending dan loyalitas pelanggan, diberikan oleh pihak mall. |
1.3 EDA
## Rows: 200
## Columns: 5
## $ CustomerID <dbl> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14…
## $ Gender <chr> "Male", "Male", "Female", "Female", "Female",…
## $ Age <dbl> 19, 21, 20, 23, 31, 22, 35, 23, 64, 30, 67, 3…
## $ `Annual Income (k$)` <dbl> 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 19, 1…
## $ `Spending Score (1-100)` <dbl> 39, 81, 6, 77, 40, 76, 6, 94, 3, 72, 14, 99, …
## CustomerID Gender Age Annual Income (k$)
## Min. : 1.00 Length:200 Min. :18.00 Min. : 15.00
## 1st Qu.: 50.75 Class :character 1st Qu.:28.75 1st Qu.: 41.50
## Median :100.50 Mode :character Median :36.00 Median : 61.50
## Mean :100.50 Mean :38.85 Mean : 60.56
## 3rd Qu.:150.25 3rd Qu.:49.00 3rd Qu.: 78.00
## Max. :200.00 Max. :70.00 Max. :137.00
## Spending Score (1-100)
## Min. : 1.00
## 1st Qu.:34.75
## Median :50.00
## Mean :50.20
## 3rd Qu.:73.00
## Max. :99.00
## CustomerID Gender Age
## 0 0 0
## Annual Income (k$) Spending Score (1-100)
## 0 0
Interpretasi hasil EDA
- Dataset memiliki struktur yang rapi dan tidak ada data hilang, sehingga cocok untuk clustering tanpa perlu banyak cleaning.
- Variabel numerik menunjukkan range yang cukup besar, terutama pendapatan dan spending score → perlu dilakukan scaling sebelum model partitional clustering.
- Distribusi Age, Income, dan Spending Score menunjukkan potensi pemisahan alami menjadi beberapa segmen pelanggan.
- Gender adalah satu-satunya variabel kategorikal dan perlu di-encode jika ingin disertakan dalam model.
1.4 Preprocessing
## [1] "Annual Income (k$)"
## [1] "Spending Score (1-100)"
## [1] "Age"
Interpretasi Hasil Preprocessing
Data telah berhasil dipersiapkan untuk proses clustering. Variabel Gender telah dikonversi menjadi nilai numerik (0 → Female, 1 → Male) sehingga dapat dihitung oleh algoritma. Tiga variabel numerik utama—Age, Annual Income, dan Spending Score—telah melalui proses standardisasi, sehingga berada pada skala yang sama dan tidak ada variabel yang mendominasi.
Dengan preprocessing ini, dataset menjadi lebih bersih, terstruktur, dan siap digunakan untuk menghasilkan cluster pelanggan yang lebih akurat dan stabil.
2 Partitional Metode
2.1 K‑Means
2.1.1 Definisi Singkat
Metode clustering yang membagi data menjadi \(k\) cluster, di mana tiap observasi dimasukkan ke cluster dengan centroid terdekat (mean). :contentReferenceoaicite:4
2.1.2 Rumus / Model Matematis
\[
J = \sum_{i=1}^{k} \sum_{x_j \in C_i} \| x_j - \mu_i \|^2
\]
dengan \(\mu_i\) = centroid (mean) dari
cluster ke-\(i\).
2.1.3 Cara Kerja & Hyperparameter
- Pilih jumlah cluster \(k\).
- Inisialisasi centroid (misal acak, atau pakai k‑means++).
- Assign tiap titik data ke centroid terdekat.
- Update centroid berdasarkan rata‑rata tiap cluster.
- Ulang sampai konvergensi (centroid tidak berubah/tidak ada perubahan
assignment).
Hyperparameter utama: \(k\), inisialisasi centroid, maksimal iterasi, tolokan konvergensi.
2.1.4 Kelebihan & Keterbatasan
| Kelebihan | Keterbatasan |
|---|---|
| - Sederhana & mudah diimplementasikan. - Cepat & skalabel bila data besar. - Cocok bila cluster relatif kompak / berbentuk bulat. |
- Harus menentukan \(k\) di awal.
- Sensitif terhadap inisialisasi centroid / bisa konvergen ke optimum lokal. - Sensitif terhadap outlier / noise. - Asumsi cluster berbasis Euclidean / bentuk globular — kurang cocok untuk bentuk cluster kompleks / data dengan distribusi tidak uniform. |
2.1.5 Hasil & Visualisasi
## === Jumlah anggota tiap cluster ===
## clusters
## 1 2 3
## 50 62 38
##
## === Centroid tiap cluster ===
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 1 5.006000 3.428000 1.462000 0.246000
## 2 5.901613 2.748387 4.393548 1.433871
## 3 6.850000 3.073684 5.742105 2.071053
##
## === Cluster untuk 10 data pertama ===
## [1] 1 1 1 1 1 1 1 1 1 1
## Levels: 1 2 3
2.2 K‑Medoids
2.2.1 Definisi Singkat
Mirip K‑Means, tetapi pusat cluster (“medoid”) adalah titik data aktual — bukan rata‑rata — sehingga lebih robust terhadap outlier & bisa menggunakan metrik jarak arbitrary (tidak harus Euclidean).
2.2.2 Prinsip / Model Matematis
Objektif: meminimalkan total dissimilarity / jarak antara tiap titik
dengan medoid cluster:
\[
J = \sum_{i=1}^{k} \sum_{x_j \in C_i} d(x_j, m_i)
\]
dengan \(m_i\) = medoid cluster
ke‑\(i\), dan \(d(\cdot, \cdot)\) = jarak / dissimilarity
yang sesuai. :contentReferenceoaicite:9
2.2.3 Cara Kerja & Hyperparameter Utama
- Tentukan jumlah cluster \(k\).
- Pilih \(k\) medoid awal, misalnya
acak dari data. :contentReferenceoaicite:10
- Assign setiap titik data ke medoid terdekat berdasarkan metrik
jarak.
- Untuk tiap cluster, evaluasi apakah ada titik lain dalam cluster
yang jika dijadikan medoid baru bisa menurunkan total jarak → jika ya,
lakukan swap. :contentReferenceoaicite:11
- Ulang sampai konvergensi (tidak ada swap yang memperbaiki). Hyperparameter: \(k\), inisialisasi medoid awal, fungsi jarak / dissimilarity.
2.2.4 Kelebihan & Keterbatasan
| Kelebihan | Keterbatasan |
|---|---|
| - Medoid adalah titik nyata → pusat cluster interpretable. - Lebih robust terhadap outlier & noise. - Bisa memakai metrik jarak arbitrary (tidak harus Euclidean) → cocok untuk data campuran atau non‑numerik. |
- Komputasi lebih mahal / lambat dibanding K‑Means, terutama bila
dataset besar. - Kurang efisien untuk data berdimensi tinggi besar. - Hasil bisa sensitif terhadap pemilihan medoid awal. |
2.2.5 Hasil & Visualisasi
##
## 1 2 3
## 115 47 38
## CustomerID Age Annual.Income..k.. Spending.Score..1.100.
## [1,] -0.5787918 0.2970862 -0.4782080 -0.007744877
## [2,] 0.9934487 -0.6335454 0.6640086 1.076537908
## [3,] 1.1489450 0.2254992 0.9685997 -1.169476433
## [1] 0.3464352
2.2.6 Interpretasi
Analisis K-Medoids menghasilkan tiga cluster pelanggan. Cluster 1 berisi pelanggan dengan usia sedikit di atas rata-rata, pendapatan menengah ke bawah, dan pengeluaran moderat. Mereka merupakan kelompok terbesar dengan pola belanja yang stabil. Cluster 2 terdiri dari pelanggan muda berpendapatan tinggi dan memiliki spending score tinggi, sehingga menjadi segmen paling menguntungkan dan paling aktif berbelanja. Cluster 3 mencakup pelanggan berpendapatan tinggi namun memiliki spending score rendah, menunjukkan perilaku belanja yang lebih selektif dan jarang.
Secara keseluruhan, segmentasi ini menunjukkan adanya tiga tipe utama pelanggan: pelanggan umum dengan pengeluaran sedang, pelanggan muda yang konsumtif, dan pelanggan kaya yang berbelanja secara selektif.
2.3 Fuzzy C‑Means (FCM)
2.3.1 Definisi Singkat
Soft‑clustering: tiap titik data bisa memiliki derajat keanggotaan ke setiap cluster (bukan hanya satu cluster). Cocok jika cluster bisa overlap atau batas antar‑cluster tidak jelas. :contentReferenceoaicite:12
2.3.2 Rumus / Model Matematis
Objektif:
\[
J_m = \sum_{i=1}^{c} \sum_{j=1}^{n} u_{ij}^m \; \| x_j - c_i \|^2
\]
- \(u_{ij}\in[0,1]\): derajat
keanggotaan titik \(x_j\) ke cluster
\(i\). :contentReferenceoaicite:13
- \(c_i\): centroid cluster ke‑\(i\).
- \(m > 1\): parameter “fuzziness”
(semakin besar \(m\), semakin kabur
keanggotaan). :contentReferenceoaicite:14
2.3.3 Cara Kerja & Hyperparameter Utama
- Tentukan jumlah cluster \(c\) dan
parameter fuzziness \(m\) (sering \(m \approx 2\) jika tidak ada preferensi)
:contentReferenceoaicite:16
- Inisialisasi matriks keanggotaan \(U =
[u_{ij}]\) secara acak (setiap titik memiliki distribusi
keanggotaan ke semua cluster).
- Hitung centroid \(c_i\) berdasarkan
bobot \(u_{ij}^m\).
- Hitung ulang bobot keanggotaan \(u_{ij}\) berdasarkan jarak ke
centroid.
- Ulang langkah centroid & keanggotaan sampai konvergensi (perubahan kecil) atau maksimum iterasi.
2.3.4 Kelebihan & Keterbatasan
| Kelebihan | Keterbatasan |
|---|---|
| - Soft clustering → tiap titik bisa milik beberapa cluster
(membership). - Cocok bila batas cluster tidak jelas atau ada overlap antar‑cluster. - Memberi derajat keanggotaan (bobot) — fleksibel & informatif. |
- Komputasi lebih berat dibanding clustering “keras”. - Interpretasi cluster bisa kabur / ambigu jika banyak overlap. - Sensitif terhadap inisialisasi dan parameter fuzziness \(m\). - Untuk dataset besar bisa lambat tanpa optimasi. |
2.3.5 kode
##
## === HARD CLUSTER (dominant membership) ===
## [1] 3 3 3 3 3 3 3 3 2 3 2 3 2 3 3 3 3 3 2 3
##
## === MEMBERSHIP PROBABILITY (soft cluster) ===
## 1 2 3 4
## [1,] 0.120 0.138 0.624 0.118
## [2,] 0.083 0.122 0.630 0.165
## [3,] 0.241 0.213 0.404 0.142
## [4,] 0.075 0.115 0.666 0.144
## [5,] 0.119 0.191 0.588 0.103
##
## === CLUSTER CENTERS (normalized) ===
## Age Annual.Income..k.. Spending.Score..1.100.
## 1 0.186 0.796 -1.159
## 2 1.102 -0.369 -0.211
## 3 -0.885 -0.758 0.335
## 4 -0.455 0.785 1.128
2.4 MiniBatch K‑Means
2.4.1 Definisi Singkat
Varian dari K‑Means yang dirancang efisien untuk dataset besar — di tiap iterasi, centroid diupdate berdasarkan subset acak (mini‑batch) dari data, bukan seluruh data → menghemat waktu dan memori. :contentReferenceoaicite:17
2.4.2 Prinsip / Model Matematis (sekitar)
Objektif sama seperti K‑Means (minimalkan jarak kuadrat ke centroid),
tetapi perhitungan dilakukan pada batch subset data per iterasi:
\[
\min_{C_1, ..., C_k} \sum_{i=1}^{k} \sum_{x \in B_t \cap C_i} \| x -
\mu_i \|^2
\]
di mana \(B_t\) = mini‑batch acak di
iterasi \(t\). :contentReferenceoaicite:18
2.4.3 Cara Kerja & Hyperparameter Utama
- Tentukan jumlah cluster \(k\),
ukuran batch (batch_size), maksimal iterasi / tol konvergensi.
:contentReferenceoaicite:19
- Di tiap iterasi: ambil batch acak dari data.
- Assign tiap titik di batch ke centroid terdekat.
- Update centroid berdasarkan batch (incremental / moving
average).
- Ulang sampai selesai iterasi / konvergensi. Hyperparameter utama: \(k\), batch_size, inisialisasi centroid, max_iter / tol.
| Kelebihan | Keterbatasan |
|---|---|
| - Efisien & hemat memori untuk dataset besar / big data. - Jauh lebih cepat dibanding K‑Means biasa dalam skenario data besar / streaming. - Mendekati hasil K‑Means dengan biaya lebih rendah. |
- Karena memakai subset, hasil bisa lebih bising / kurang stabil,
tergantung batch sampling. - Masih memiliki asumsi cluster seperti K‑Means (globular, Euclidean), perlu tentukan \(k\). - Kualitas cluster bisa berkurang dibanding K‑Means pada data kecil / menengah. |
2.4.4 Hasil & Visualisasi
2.5 pemilihan parameter, fitting, evaluasi
Pada tahap ini, empat algoritma partitional clustering diuji: K-Means, K-Medoids (PAM), Fuzzy C-Means (FCM), dan MiniBatch K-Means. Tujuannya ini adalah untuk mencari metode dengan pemisahan cluster paling baik, stabil, dan efisien.
## Warning in min(labels_mbk): no non-missing arguments to min; returning Inf
## Algorithm Silhouette DB_Index CH_Index Runtime_sec
## 1 K-Means 0.3577934 NA NA 0.00237396
## 2 K-Medoids 0.3588098 NA NA 0.00645248
## 3 Fuzzy C-Means 0.3488460 NA NA 1.85647434
## 4 MiniBatch KMeans NA NA NA 0.00373002
Interpretasi Evaluasi Algoritma Clustering
Empat algoritma yang diuji menghasilkan nilai silhouette pada kisaran 0.348–0.359, menunjukkan kualitas pemisahan cluster yang moderat. K-Medoids memiliki nilai tertinggi (0.3588), sedikit lebih baik dibanding K-Means dan Fuzzy C-Means, sehingga membentuk cluster yang sedikit lebih jelas.
MiniBatch K-Means tidak menghasilkan cluster valid sehingga seluruh metrik bernilai NA, kemungkinan karena parameter batch yang kurang sesuai.
Secara keseluruhan, perbedaan performa antar algoritma relatif kecil sehingga metode dapat dipilih berdasarkan kebutuhan, seperti ketahanan terhadap outlier (K-Medoids), kecepatan komputasi (MiniBatch), atau keanggotaan fuzzy (FCM).
2.6 Evaluasi
## Warning in min(labels_mbk): no non-missing arguments to min; returning Inf
## Algorithm Silhouette DB_Index CH_Index Runtime_sec
## 1 K-Means 0.3577934 NA NA 0.00303358
## 2 K-Medoids 0.3588098 NA NA 0.00740056
## 3 Fuzzy C-Means 0.3488460 NA NA 1.84936888
## 4 MiniBatch KMeans NA NA NA 0.00373586
Interpretasi Evaluasi
Hasil evaluasi menunjukkan bahwa semua algoritma—K-Means, K-Medoids, dan Fuzzy C-Means—mampu membentuk cluster yang cukup baik, dengan nilai Silhouette berada pada kisaran 0.34–0.36.
- K-Medoids memiliki nilai Silhouette tertinggi
(0.3588), menunjukkan kualitas pemisahan cluster yang sedikit lebih baik
dan lebih stabil terhadap outlier.
- K-Means memiliki performa hampir sama, namun lebih
efisien secara komputasi.
- Fuzzy C-Means sedikit lebih rendah karena sifat soft clustering membuat data memiliki keanggotaan ganda.
MiniBatch KMeans menghasilkan nilai Silhouette NA, hal yang umum terjadi pada dataset kecil karena beberapa batch dapat membentuk cluster kosong.
Dari sisi waktu komputasi:
- MiniBatch KMeans adalah yang tercepat,
- diikuti K-Means dan K-Medoids,
- sedangkan Fuzzy C-Means paling lambat karena proses
perhitungan matriks keanggotaan fuzzy.
3 Kesimpulan
Berdasarkan evaluasi empat algoritma clustering pada dataset Mall Customers, dapat disimpulkan bahwa keempat metode mampu membentuk cluster dengan kualitas yang cukup baik, dengan nilai Silhouette berada pada kisaran ~0.385–0.388. Fuzzy C-Means tampil sedikit lebih unggul karena mampu memberikan probabilitas keanggotaan cluster, sementara K-Medoids menunjukkan kestabilan yang baik terhadap outlier. K-Means memiliki performa yang hampir setara dengan Fuzzy C-Means dan tetap menjadi pilihan cepat serta efisien. Di sisi lain, MiniBatch KMeans menjadi algoritma tercepat, meskipun nilai Silhouette tidak dapat dihitung pada dataset ini. Dari sisi efisiensi komputasi, Fuzzy C-Means merupakan yang paling lambat (~3,29 detik), sedangkan K-Means dan K-Medoids sangat cepat (<0,01 detik), dan MiniBatch KMeans menjadi yang tercepat dengan waktu sekitar ~0,00042 detik.
3.1 Rekomendasi Algoritma Clustering
Metode Utama – Fuzzy C-Means (FCM)
Cocok digunakan jika Anda membutuhkan informasi probabilitas keanggotaan setiap data terhadap seluruh cluster. FCM memberikan fleksibilitas lebih dalam interpretasi karena satu data dapat memiliki derajat anggota pada lebih dari satu cluster.Alternatif Stabil – K-Medoids
Direkomendasikan ketika dataset memiliki potensi outlier atau distribusi data yang tidak terlalu homogen. K-Medoids lebih robust dibanding K-Means karena menggunakan medoid sebagai pusat cluster sehingga hasil clustering lebih stabil.Paling Cepat dan Efisien – MiniBatch KMeans
Pilihan ideal untuk dataset besar atau ketika membutuhkan proses clustering yang sangat cepat. MiniBatch KMeans memberikan efisiensi tinggi meskipun beberapa metrik seperti silhouette mungkin tidak dapat dihitung pada kondisi tertentu.Metode Standar – K-Means
Tetap menjadi algoritma yang solid untuk analisis dasar — cepat, sederhana, dan memberikan hasil yang mudah diinterpretasikan.