K-Means Clustering: Contoh Perhitungan Manual dan Implementasi
Tutorial ini membahas K-Means Clustering dan contoh perhitungannya untuk mengelompokkan data berdasarkan kemiripan karakteristik. Contoh kasus yang digunakan adalah segmentasi pelanggan berdasarkan pendapatan dan pengeluaran.
Proses perhitungan dilakukan mulai dari menentukan jumlah cluster, memilih centroid awal, menghitung jarak Euclidean, menentukan anggota cluster, menghitung centroid baru, hingga iterasi berhenti ketika centroid sudah stabil.
Daftar Isi
- Pengertian K-Means Clustering
- Rumus Euclidean Distance
- Data Contoh
- #01 Menentukan Jumlah Cluster
- #02 Menentukan Centroid Awal
- #03 Iterasi K-Means
- #04 Menghitung Centroid Baru
- #05 Hasil Akhir Cluster
- Ringkasan
- FAQ K-Means
- Referensi
- Source Code K-Means
Pengertian K-Means Clustering
K-Means adalah algoritma unsupervised learning yang digunakan untuk membagi data ke dalam sejumlah cluster berdasarkan kedekatan terhadap titik pusat cluster atau centroid.
Setiap data akan dimasukkan ke cluster dengan jarak terdekat. Setelah seluruh data memperoleh cluster, centroid dihitung kembali berdasarkan rata-rata anggota masing-masing cluster. Proses ini diulang sampai tidak terjadi perubahan centroid yang berarti.
Rumus Euclidean Distance
Pada contoh ini, jarak antara data dan centroid dihitung menggunakan Euclidean Distance.
$$ d(x,c) = \sqrt{\sum_{j=1}^{n}(x_j-c_j)^2} $$
Untuk dua atribut, rumusnya menjadi:
$$ d(x,c) = \sqrt{(x_1-c_1)^2 + (x_2-c_2)^2} $$
- \(d(x,c)\): jarak data \(x\) terhadap centroid \(c\)
- \(x_j\): nilai atribut ke-\(j\) pada data
- \(c_j\): nilai atribut ke-\(j\) pada centroid
- \(n\): jumlah atribut
Data Contoh
Data berikut merupakan contoh 10 pelanggan. Nilai pendapatan dan pengeluaran dibuat dalam skala sederhana agar proses perhitungan manual lebih mudah diikuti.
| Kode | Nama | Pendapatan | Pengeluaran |
|---|---|---|---|
| D1 | Pelanggan 1 | 2 | 3 |
| D2 | Pelanggan 2 | 3 | 4 |
| D3 | Pelanggan 3 | 2 | 5 |
| D4 | Pelanggan 4 | 5 | 6 |
| D5 | Pelanggan 5 | 6 | 7 |
| D6 | Pelanggan 6 | 6 | 5 |
| D7 | Pelanggan 7 | 8 | 3 |
| D8 | Pelanggan 8 | 9 | 2 |
| D9 | Pelanggan 9 | 8 | 4 |
| D10 | Pelanggan 10 | 9 | 5 |
#01 Menentukan Jumlah Cluster
Jumlah cluster pada contoh ini ditentukan sebanyak K = 3. Artinya seluruh data pelanggan akan dikelompokkan menjadi 3 kelompok.
Dalam implementasi nyata, nilai K dapat ditentukan menggunakan pengetahuan domain atau metode evaluasi seperti Elbow Method.
#02 Menentukan Centroid Awal
Centroid awal pada contoh ini dipilih dari beberapa data agar proses perhitungan mudah direproduksi. Pemilihan centroid awal adalah:
| Cluster | Pendapatan | Pengeluaran |
|---|---|---|
| C1 | 2 | 3 |
| C2 | 6 | 7 |
| C3 | 9 | 2 |
#03 Iterasi K-Means
Pada setiap iterasi, jarak setiap data terhadap seluruh centroid dihitung. Data kemudian ditempatkan pada cluster yang memiliki jarak paling kecil.
Iterasi 1
Centroid Sebelum Perhitungan
| Cluster | Pendapatan | Pengeluaran |
|---|---|---|
| C1 | 2 | 3 |
| C2 | 6 | 7 |
| C3 | 9 | 2 |
Perhitungan Jarak dan Cluster
Sebelum melihat tabel, berikut contoh cara mendapatkan nilai jarak untuk D1 - Pelanggan 1 pada iterasi 1.
Jarak ke C1:
√((2 - 2)²
+ (3 - 3)²)
= 0
Jarak ke C2:
√((2 - 6)²
+ (3 - 7)²)
= 5.6569
Jarak ke C3:
√((2 - 9)²
+ (3 - 2)²)
= 7.0711
Nilai jarak terkecil menentukan cluster data tersebut. Pada iterasi ini, D1 masuk ke C1.
| Data | Jarak C1 | Jarak C2 | Jarak C3 | Cluster |
|---|---|---|---|---|
| D1 - Pelanggan 1 | 0 | 5.6569 | 7.0711 | C1 |
| D2 - Pelanggan 2 | 1.4142 | 4.2426 | 6.3246 | C1 |
| D3 - Pelanggan 3 | 2 | 4.4721 | 7.6158 | C1 |
| D4 - Pelanggan 4 | 4.2426 | 1.4142 | 5.6569 | C2 |
| D5 - Pelanggan 5 | 5.6569 | 0 | 5.831 | C2 |
| D6 - Pelanggan 6 | 4.4721 | 2 | 4.2426 | C2 |
| D7 - Pelanggan 7 | 6 | 4.4721 | 1.4142 | C3 |
| D8 - Pelanggan 8 | 7.0711 | 5.831 | 0 | C3 |
| D9 - Pelanggan 9 | 6.0828 | 3.6056 | 2.2361 | C3 |
| D10 - Pelanggan 10 | 7.2801 | 3.6056 | 3 | C3 |
Centroid Baru Iterasi 1
Centroid baru dihitung dari rata-rata setiap atribut pada seluruh anggota cluster.
Contoh perhitungan centroid baru untuk C1. Anggotanya adalah D1, D2, D3.
Centroid pendapatan C1:
(2 + 3 + 2) / 3 = 2.3333
Centroid pengeluaran C1:
(3 + 4 + 5) / 3 = 4
| Cluster | Anggota | Centroid Pendapatan | Centroid Pengeluaran |
|---|---|---|---|
| C1 | D1, D2, D3 | 2.3333 | 4 |
| C2 | D4, D5, D6 | 5.6667 | 6 |
| C3 | D7, D8, D9, D10 | 8.5 | 3.5 |
Centroid masih berubah, sehingga perhitungan dilanjutkan ke iterasi berikutnya.
Iterasi 2
Centroid Sebelum Perhitungan
| Cluster | Pendapatan | Pengeluaran |
|---|---|---|
| C1 | 2.3333 | 4 |
| C2 | 5.6667 | 6 |
| C3 | 8.5 | 3.5 |
Perhitungan Jarak dan Cluster
Sebelum melihat tabel, berikut contoh cara mendapatkan nilai jarak untuk D1 - Pelanggan 1 pada iterasi 2.
Jarak ke C1:
√((2 - 2.3333)²
+ (3 - 4)²)
= 1.0541
Jarak ke C2:
√((2 - 5.6667)²
+ (3 - 6)²)
= 4.7376
Jarak ke C3:
√((2 - 8.5)²
+ (3 - 3.5)²)
= 6.5192
Nilai jarak terkecil menentukan cluster data tersebut. Pada iterasi ini, D1 masuk ke C1.
| Data | Jarak C1 | Jarak C2 | Jarak C3 | Cluster |
|---|---|---|---|---|
| D1 - Pelanggan 1 | 1.0541 | 4.7376 | 6.5192 | C1 |
| D2 - Pelanggan 2 | 0.6667 | 3.3333 | 5.5227 | C1 |
| D3 - Pelanggan 3 | 1.0541 | 3.8006 | 6.6708 | C1 |
| D4 - Pelanggan 4 | 3.3333 | 0.6667 | 4.3012 | C2 |
| D5 - Pelanggan 5 | 4.7376 | 1.0541 | 4.3012 | C2 |
| D6 - Pelanggan 6 | 3.8006 | 1.0541 | 2.9155 | C2 |
| D7 - Pelanggan 7 | 5.7542 | 3.8006 | 0.7071 | C3 |
| D8 - Pelanggan 8 | 6.9602 | 5.2068 | 1.5811 | C3 |
| D9 - Pelanggan 9 | 5.6667 | 3.0732 | 0.7071 | C3 |
| D10 - Pelanggan 10 | 6.7412 | 3.4801 | 1.5811 | C3 |
Centroid Baru Iterasi 2
Centroid baru dihitung dari rata-rata setiap atribut pada seluruh anggota cluster.
Contoh perhitungan centroid baru untuk C1. Anggotanya adalah D1, D2, D3.
Centroid pendapatan C1:
(2 + 3 + 2) / 3 = 2.3333
Centroid pengeluaran C1:
(3 + 4 + 5) / 3 = 4
| Cluster | Anggota | Centroid Pendapatan | Centroid Pengeluaran |
|---|---|---|---|
| C1 | D1, D2, D3 | 2.3333 | 4 |
| C2 | D4, D5, D6 | 5.6667 | 6 |
| C3 | D7, D8, D9, D10 | 8.5 | 3.5 |
Centroid pada iterasi ini tidak berubah, sehingga proses K-Means dihentikan.
#05 Hasil Akhir Cluster
Proses K-Means berhenti setelah 2 iterasi. Hasil pengelompokan akhir adalah sebagai berikut.
| Kode | Nama | Pendapatan | Pengeluaran | Cluster |
|---|---|---|---|---|
| D1 | Pelanggan 1 | 2 | 3 | C1 |
| D2 | Pelanggan 2 | 3 | 4 | C1 |
| D3 | Pelanggan 3 | 2 | 5 | C1 |
| D4 | Pelanggan 4 | 5 | 6 | C2 |
| D5 | Pelanggan 5 | 6 | 7 | C2 |
| D6 | Pelanggan 6 | 6 | 5 | C2 |
| D7 | Pelanggan 7 | 8 | 3 | C3 |
| D8 | Pelanggan 8 | 9 | 2 | C3 |
| D9 | Pelanggan 9 | 8 | 4 | C3 |
| D10 | Pelanggan 10 | 9 | 5 | C3 |
Centroid Akhir
| Cluster | Pendapatan | Pengeluaran | Jumlah Anggota |
|---|---|---|---|
| C1 | 2.3333 | 4 | 3 |
| C2 | 5.6667 | 6 | 3 |
| C3 | 8.5 | 3.5 | 4 |
Interpretasi Cluster
Cluster C1 terdiri dari Pelanggan 1, Pelanggan 2, Pelanggan 3. Centroid akhirnya berada pada (2.3333, 4).
Cluster C2 terdiri dari Pelanggan 4, Pelanggan 5, Pelanggan 6. Centroid akhirnya berada pada (5.6667, 6).
Cluster C3 terdiri dari Pelanggan 7, Pelanggan 8, Pelanggan 9, Pelanggan 10. Centroid akhirnya berada pada (8.5, 3.5).
Label seperti “rendah”, “menengah”, atau “tinggi” sebaiknya diberikan setelah melihat karakteristik centroid dan konteks data. K-Means sendiri menghasilkan nomor cluster, bukan makna bisnis secara otomatis.
Ringkasan
K-Means mengelompokkan data dengan cara menghitung jarak terhadap centroid, memasukkan data ke cluster terdekat, kemudian menghitung centroid baru. Tahapan tersebut terus diulang sampai centroid stabil. Pada contoh ini, 10 data pelanggan berhasil dikelompokkan menjadi 3 cluster setelah 2 iterasi.
FAQ K-Means
Apa fungsi K-Means?
K-Means digunakan untuk mengelompokkan data yang memiliki karakteristik mirip tanpa memerlukan label kelas sebelumnya.
Apa itu centroid?
Centroid adalah titik pusat sebuah cluster yang dihitung dari rata-rata nilai seluruh anggota cluster.
Bagaimana menentukan jumlah cluster K?
Nilai K dapat ditentukan berdasarkan kebutuhan analisis, pengetahuan domain, atau menggunakan metode evaluasi seperti Elbow Method dan Silhouette Score.
Mengapa hasil K-Means dapat berbeda?
Hasil K-Means dapat berbeda jika centroid awal berbeda. Pada implementasi tertentu, teknik seperti K-Means++ digunakan untuk membantu memilih centroid awal yang lebih baik.
Kapan iterasi K-Means berhenti?
Iterasi berhenti ketika centroid tidak lagi berubah secara berarti atau ketika batas maksimum iterasi yang ditentukan telah tercapai.
Apakah atribut harus memiliki skala yang sama?
Sebaiknya atribut yang memiliki skala sangat berbeda dinormalisasi atau distandardisasi terlebih dahulu agar satu atribut tidak mendominasi perhitungan jarak.
Referensi
- MacQueen, J. (1967). Some Methods for Classification and Analysis of Multivariate Observations. Proceedings of the Fifth Berkeley Symposium on Mathematical Statistics and Probability.
- Han, J., Kamber, M. & Pei, J. (2012). Data Mining: Concepts and Techniques, 3rd Edition. Morgan Kaufmann.
Source Code Metode K-Means
Berikut adalah beberapa source code yang menggunakan metode K-Means, baik berbasis web maupun desktop.
Ada yang Ditanyakan?
Jika anda masih ada kesulitan atau kekeliruan tentang penjelasan metode di atas, bisa menghubungi kami lewat WA/Email sesuai halaman Kontak.
Jika ingin memiliki file excel dari metode di atas bisa melihat cara download di halaman Download.
Jika ingin memiliki source code dari metode di atas, baik berbasis web maupun desktop bisa melihat daftar harga donasi di halaman Daftar Source Code.
Donasi ini digunakan oleh penulis untuk membayar server dan membeli kopi sembari membuat tutorial Metode/Algoritma lainnya :).




