K-Means

K-Means adalah suatu metode penganalisaan data atau metode Data Mining yang melakukan proses pemodelan tanpa supervisi (unsupervised) dan merupakan salah satu metode yang melakukan pengelompokan data dengan sistem partisi. Metode k-means berusaha mengelompokkan data yang ada ke dalam beberapa kelompok, dimana data dalam satu kelompok mempunyai karakteristik yang sama satu sama lainnya dan mempunyai karakteristik yang berbeda dengan data yang ada di dalam kelompok yang lain. Dengan kata lain, metode ini berusaha untuk meminimalkan variasi antar data yang ada di dalam suatu cluster dan memaksimalkan variasi dengan data yang ada di cluster lainnya.

Objective function yang berusaha diminimalkan oleh k-means adalah:

J (U, V) = SUM (k=1 to N) SUM (i=1 to c) (a_ik * (x_k, v_i)^2)

dimana:
U : Matriks keanggotaan data ke masing-masing cluster yang berisikan nilai 0 dan 1
V : Matriks centroid/rata-rata masing-masing cluster
N : Jumlah data
c : Jumlah cluster
a_ik : Keanggotaan data ke-k ke cluster ke-i
x_k : data ke-k
v_i : Nilai centroid cluster ke-i

Prosedur yang digunakan dalam melakukan optimasi menggunakan k-means adalah sebagai berikut:
Step 1. Tentukan jumlah cluster
Step 2. Alokasikan data ke dalam cluster secara random
Step 3. Hitung centroid/rata-rata dari data yang ada di masing-masing cluster.
Step 4. Alokasikan masing-masing data ke centroid/rata-rata terdekat
Step 5. Kembali ke Step 3, apabila masih ada data yang berpindah cluster atau apabila perubahan nilai centroid, ada yang di atas nilai threshold yang ditentukan atau apabila perubahan nilai pada objective function yang digunakan, di atas nilai threshold yang ditentukan

Centroid/rata-rata dari data yang ada di masing-masing cluster yang dihitung pada Step 3. didapatkan menggunakan rumus sebagai berikut:

v_ij = SUM (k=0 to N_i) (x_kj) / N_i

dimana:
i,k : indeks dari cluster
j : indeks dari variabel
v_ij : centroid/rata-rata cluster ke-i untuk variabel ke-j
x_kj : nilai data ke-k yang ada di dalam cluster tersebut untuk variabel ke-j
N_i : Jumlah data yang menjadi anggota cluster ke-i

Sedangkan pengalokasian data ke masing-masing cluster yang dilakukan pada Step 4. dilakukan secara penuh, dimana nilai yang memungkinkan untuk a_ik adalah 0 atau 1. Nilai 1 untuk data yang dialokasikan ke cluster dan nilai 0 untuk data yang dialokasikan ke cluster yang lain. Dalam menentukan apakah suatu data teralokasikan ke suatu cluster atau tidak, dapat dilakukan dengan menghitung jarak data tersebut ke masing-masing centroid/rata-rata masing-masing cluster. Dalam hal ini, a_ik akan bernilai 1 untuk cluster yang centroidnya terdekat dengan data tersebut, dan bernilai 0 untuk yang lainnya.

Referensi:
J. B. MacQueen (1967): “Some Methods for classification and Analysis of Multivariate Observations, Proceedings of 5-th Berkeley Symposium on Mathematical Statistics and Probability”, Berkeley, University of California Press, 1:281-297
J. A. Hartigan (1975) “Clustering Algorithms”. Wiley.
J. A. Hartigan and M. A. Wong (1979). “A K-Means Clustering Algorithm”. Applied Statistics 28 (1): 100–108.

Cluster Validity Criterion

Untuk menentukan jumlah cluster yang paling tepat, saat menggunakan metode k-means dapat dilakukan dengan beberapa cara. Salah satunya adalah dengan cara manual yang saya jelaskan dalam posting saya tentang Akurasi Hasil Pemodelan K-Means yang sering juga direfer sebagai Bootstrapped Method. Selain itu ada beberapa cara yang lain yang juga bisa digunakan seperti di bawah ini.

Elbow Criterion (RMSSDT dan RS)

Elbow criterion adalah salah satu cara untuk menentukan jumlah cluster yang paling tepat untuk pemodelan k-means. Elbow criterion untuk k-means ini mengkombinasikan antara nilai RMSSTD dan RS statistics, dimana cluster yang paling tepat untuk suatu dataset ditentukan apabila perbedaan nilai antara RMSSTD dan RS menjadi berbanding terbalik dengan keadaan sebelumnya.

RMSSTD (Root Means Square Standard Deviation) merupakan alat ukur tingkat kemiripan (homogeneity) data yang terdapat di dalam cluster yang ditemukan (within clusters). Makin rendah nilai RMSSTD makin mirip data di dalam cluster yang ditemukan. RMSSDT dihitung menggunakan rumus sebagai berikut:

RMSSTD = SQRT (SUM(i=1 to k) SUM(j=1 to d) (SUM(k=1 to N_i) ((x_kj – mu_j)^2)) /
SUM(i=1 to k) SUM(j=1 to d) (N_i – 1))

RS (R Squared) digunakan untuk mengukur tingkat kesamaan atau ketidaksamaan antara cluster (between clusters). RS mempunyai nilai antara 0 dan 1. Nilai 0 untuk cluster yang sama dan 1 untuk cluster yang benar-benar berbeda. RS dihitung dengan rumus:

RS = (SS_t – SS_w) / SS_t

SS_t = SUM(j=1 to d) (SUM(k=1 to N) ((x_kj – mu_j)^2) dan
SS_w = SUM(i=1 to k) SUM(j=1 to d) (SUM(k=1 to N_i) ((x_kj – mu_j)^2))

Notasi:
x_kj : data ke-k yang ada di dalam cluster untuk dimensi ke-j
mu_j : means/rata-rata nilai dari variabel dimensi ke-j
N_i : jumlah data di dalam cluster ke-i
N : jumlah data keseluruhan
d : jumlah dimensi dari data
k : jumlah cluster

Elbow criterion adalah suatu modelling criterion yang bisa digunakan untuk menentukan jumlah cluster dengan melihat perubahan perbandingan antara nilai RMSSTD dan RS. Hal ini dilihat dengan membandingkan persentase tingkat perubahan kedua nilai (RMSSTD dan RS). Apabila muncul suatu keadaan yang berbanding terbalik dengan keadaan sebelumnya, maka titik sebelum terjadinya perubahan tersebut dianggap sebagai jumlah cluster yang paling tepat.

Referensi:
Subhash Sharma: Applied Multivariate Techniques, John Wiley & Sons, Inc., 1996.

G-Means (Gaussian Means)

G-Means berusaha menentukan jumlah cluster secara gradual dengan melihat apakah suatu cluster sudah dalam keadaan terdistribusi secara normal atau tidak. Kalau masih dianggap belum normal, maka akan dilihat apakah cluster tersebut masih bisa displit untuk dijadikan dua cluster. Hipotesis yang digunakan adalah:

H0: Data di sekitar centroid disample dari suatu distribusi Gaussian.
H1: Data di sekitar centroid tidak disample dari suatu distribusi Gaussian.

Adapun algoritma yang digunakan untuk menentukan split atau tidak adalah sebagai berikut:
1. Tentukan confidence level Alpha untuk testing.
2. Tentukan dua centroid baru c1 dan c2.
3. Jalankan k-means terhadap dua centroid baru tersebut.
4. Tentukan vektor v yang menghubungkan antara centroid c1 dan c2 dimana v = c1 – c2. Kemudian proyeksikan data X ke v dengan rumus x’ = (x,v)/||v||^2. X’ merupakan representasi satu dimensi dari data yang diproyeksikan ke v. Hitung z = F(x’), dimana z adalah bentuk normalisasi x’.
5. Hitung nilai A_2*(Z) dengan rumus di bawah. Apabila A_2*(Z) berada di wilayah nilai non-critical pada confidence level Alpha, maka H0 diterima, dan centroid awal tetap digunakan dan centroid baru c1 dan c2 dihapus. Untuk keadaan sebaliknya, H0 harus ditolak dan centroid baru c1 dan c2 digunakan sebagai pengganti centroid awal.

A_2*(Z) = A_2(Z)(1+4/n-25/(n^2)) dan
A_2(Z) = -1/n * SUM (i=1 to n) ((2*i – 1)(log(z_i)+log(1-z_(n+1-i))) – n

dimana:
n : Jumlah data

Referensi:
G. Hamerly and C. Elkan (2003). Learning the k in k-means. In Proceedings of 17th Neural Information Processing Systems.

X-Means
Merupakan suatu pengembangan k-means untuk menentukan jumlah cluster yang paling tepat untuk suatu dataset yang dianalisa. Adapun algoritma yang diterapkan di dalam metote ini adalah dengan menggabungkan algoritma k-means murni dan salah satu modelling criterion seperti Bayesian Information Criterion (BIC) atau Akaike Information Criterion (AIC) – penjelasan tentang kedua criteria ini ada di My Mixture Modelling Page. Algoritma yang diterapkan adalah sebagai berikut:
Step 1: Tentukan jumlah cluster
Step 2: Lakukan optimasi dengan k-means murni
Step 3: Untuk setiap cluster yang dihasilkan split cluster menjadi dua dan bandingkan modelling score antara model dengan satu cluster dan model dengan dua cluster. Model dengan score yang lebih baik dipilih menjadi perwakilan model yang displit.

Referensi
Pelleg D. and Moore A. (2000). X-means: Extending K-means with Efficient Estimation of the Number of Clusters. In Proceedings of the Seventeenth International Conference on Machine Learning (ICML). 727-734.

K-Means Variances

Fuzzy c-Means
Variasi dalam hal penentuan nilai keanggotaan data ke masing-masing cluster.

Fuzzy c-Means merupakan perkembangan dari metode k-means dengan memperhitungkan bahwa data dapat tergabung ke dalam ke dalam beberapa cluster dengan tingkat keanggotaan yang berbeda-beda. Tetapi sum total dari nilai keanggotaan data tersebut harus sama dengan 1. Misalnya data x1 bisa tergabung dengan cluster I dengan tingkat keanggotaan 0,7, dengan cluster II dengan tingkat keanggotaan 0,2 dan dengan cluster III dengan tingkat keanggotaan 0,1. Hal ini berbeda dengan k-means karena metode tersebut mengharuskan suatu data untuk menjadi anggota atau tidak sekalian.

Algoritma yang digunakan dalam fuzzy c-means sama dengan algoritma yang digunakan dalam k-means. Tetapi objective function dan rumus yang digunakan untuk menghitung centroid/rata-rata berbeda. Di samping itu, dalam fuzzy c-means, tingkat keanggotaan, yang sering disebut dengan membership function, juga perlu di hitung. Objective function dan rumus-rumus yang digunakan adalah sebagai berikut:

Objective function:

J (U, V) = SUM (k=1 to N) SUM (i=1 to c) (u_ik^m * (x_k, v_i)^2)

dimana:
u_ik = membership function data ke i ke cluster ke k
m = weighting exponent
U, V, N, c, x_k dan v_i : sudah dijelaskan di objective function untuk k-means

Rumus menghitung rata-rata/centroid:

v_ij = SUM (k=1 to N_i) (u_ik^m * x_kj) / SUM (k=1 to N_i) (u_ik^m)

Rumus menghitung membership function:

u_ik = SUM (j=1 to c) ((x_k – v_i)/(x_k – v_j))^(2/(m-1))

Referensi:
Bezdek, J.C. (1981). Pattern Recognition with Fuzzy Objective Function Algorithms. Plenum Press, New York.

K Harmonic Means
Variasi dalam hal objective function yang digunakan.

K Harmonic Means menggunakan suatu objective function untuk menghindarkan pengaruh yang besar dari data-data yang ada di sekitar cluster center. Untuk keperluan tersebut, di samping nilai keanggotaan dari data terhadap cluster, setiap data juga mempunyai nilai weight yang digunakan untuk meng-harmoni-kan pengaruh masing-masing data dalam pemodelan. Adapun objective function yang digunakan dalam metode ini adalah sebagai berikut:

J (V) = SUM (k=1 to N) (c / (SUM (i=1 to c) (1/ (x_k- v_i)^p)))

dimana:
V : Matriks centroid/rata-rata masing-masing cluster
N : Jumlah data
c : Jumlah cluster
v_i : Nilai centroid cluster ke-i
p : suatu input parameter yang besarnya lebih dari atau sama dengan 2

Nilai membership function u_ik dan weight w_k dihitung dengan rumus sebagai berikut:

u_ik = SUM (j=1 to c) ((x_k – v_i)/(x_k – v_j))^(-p-2)

w_k = SUM (j=1 to c) (x_k – v_j)^(-p-2) / (SUM (j=1 to c) (x_k – v_j)^(-p))^2

Referensi:
G. Hamerly and C. Elkan (2002). Altenatives to the k-means algorithm that find better clusterings. In Proceedings of the 11th International Conference on Information and Knowledge Management. pp. 600-607.

Kernel K-means
Variasi untuk sekumpulan data yang ‘dianggap’ terkelompok secara non-linear.

K-means yang standar umumnya digunakan untuk mengelompokkan data yang secara umum datanya dipisahkan secara linear. Kalau data ‘dianggap’ terkelompok secara non-linear, k-means perlu dimodifikasi untuk dapat mengakomodasi ke-non-linear-an tersebut. Adapun metode yang diimplementasikan di dalam menyelesaikan permasalahan ini adalah dengan mengadopsi Kernel Trick dalam proses pengelompokan yang dilakukan.

Perlu diketahui di sini, untuk bisa menerapkan Kernel Trick, data perlu untuk dipetakan terlebih dahulu ke bentuk data dengan dimensi yang lain, yang umumnya jumlah dimensinya lebih tinggi dengan fungsi THETA(x), yang artinya data x dipetakan dari dimensi awal ke dimensi yang lain (umumnya dimensi yang lebih tinggi).

Adapun objective function yang digunakan untuk Kernel K-Means adalah:

J (U, V) = SUM (k=1 to N) SUM (i=1 to c) (a_ik * (THETA(x_k), v_i)^2)

dimana:
U : Matriks keanggotaan data ke masing-masing cluster yang berisikan nilai 0 dan 1
V : Matriks centroid/rata-rata masing-masing cluster
N : Jumlah data
c : Jumlah cluster
a_ik : Keanggotaan data ke-k ke cluster ke-i
v_i : Nilai centroid cluster ke-i

Rumus menghitung rata-rata/centroid:

v_ij = SUM (k=0 to N_i) THETA (x_kj) / N_i

yang tentunya tidak bisa dihitung, karena kita tidak bisa mengetahui nilai THETA (x_kj) secara langsung. Hal ini bisa diakali, dengan langsung menentukan nilai a_ik (yang nilainya adalah 1 atau 0), dimana a_ik bernilai 1 untuk data yang mempunyai jarak terdekat dengan centroid dan 0 untuk yang lainnya. Adapun jarak antara data dengan centroid dihitung dengan rumus berikut ini:

(THETA(x_l),v_i)^2 = SUM (l=0 to N_i) THETA(x_lj)*THETA(x_lj) –
2*SUM (k,l=0 to N_i) THETA (x_lj)*THETA (x_kj)/ N_i +
SUM (k=0 to N_i) THETA (x_kj)*THETA (x_kj)/ N_i

Disini fungsi kernel disubstitusikan, sehingga jarak antara data dengan centroid dapat dihitung dengan rumus berikut ini:

(THETA(x_l),v_i)^2 = SUM (l=0 to N_i) K(x_lj,x_lj) –
2*SUM (k,l=0 to N_i) K (x_lj,x_kj)/ N_i + SUM (k=0 to N_i) K (x_kj,x_kj)/ N_i

Data di-assign ke dalam kelompok yang jarak antara centroid dan data tersebut diminimalkan. Prosedur yang digunakan tetap sama dengan prosedur yang diterapkan pada standar k-means.

Referensi
M Girolami (2002). Mercer kernel-based clustering in feature space. Neural Networks, IEEE Transactions on, Vol. 13, No. 3., pp. 780-784.
Inderjit S Dhillon, Yuqiang Guan, Brian Kulis (2004).Kernel k-means: spectral clustering and normalized cuts. pp. 551-556

K-Modes
Variasi dalam hal data yang dianalisa bukan continuous, tapi categorical.

Untuk data categorical, k-means tidak bisa digunakan karena data categorical tidak bisa dicari nilai means (rata-rata)-nya. Untuk keperluan tersebut K-Modes dapat digunakan sebagai gantinya. Adapun algoritma yang digunakan sama dengan k-means dengan beberapa modifikasi sebagai berikut:
Step 1. Tentukan jumlah cluster
Step 2. Alokasikan data ke dalam cluster secara random
Step 3. Hitung modes dari data yang ada di masing-masing cluster.
Step 4. Alokasikan masing-masing data ke cluster terdekat menggunakan Hemming Distance
Step 5. Kembali ke Step 3, apabila masih ada data yang berpindah cluster atau apabila perubahan nilai modes atau apabila perubahan nilai pada objective function yang digunakan, di atas nilai threshold yang ditentukan

Objective function yang digunakan k-modes adalah:

J (A, M) = SUM (k=1 to N) SUM (i=1 to c) (a_ik * D(x_k, m_i))

dimana:
A : Matriks keanggotaan data ke masing-masing cluster yang berisikan nilai 0 dan 1
M : Matriks modes masing-masing cluster
N : Jumlah data
c : Jumlah cluster
a_ik : Keanggotaan data ke-k ke cluster ke-i
x_k : data ke-k
m_i : Nilai modes cluster ke-i
D(x_k, m_i) : Hemming Distance antara data x dan modes m

Referensi:
Chaturvedi, A.D., Green, P.E. and Carroll, J.D. (2001). K-Modes Clustering. Journal of Classification, 18, 35-56.

323 responses

10 09 2019
13 05 2019
Ayu Shafira

selamat malam pak. TA saya tentang Text mining menggunakan k means, sblm ke proses kmeans kan text diolah menggunakan text preprocessing yang hasil akhirnya itu TF IDF, tapi saya bingung saat mau melanjutkan K means, saat perhitungan Euclidean, karena Data nya sangat banyak sekali.. saya pikir perhitungan saya salah. apa bisa membantu pak?

16 09 2018
athifa

pak, saya membandingkan metode k means dan k medoids dalam kasus kebakaran hutan/lahan berdasarkan potensi titik panas .. pembanding nya saya gunakan Silhouette Coefficient, dan hasilnya ternyata lebih baik k means padahal dalam literatur yg saya baca, k medoids adalah metode clustering yang lebih baik dari k means karena dapat mengatasi data berisi outlier,
kenapa bisa begitu ya pak?
nb: data saya hanya berjumlah 42 data dengan 3 variabel..
terimakasih banyak sebelumnya pak..

16 09 2018
athifa

pak saya kurang mengerti yang dimaksud dengan ‘SSE untuk menghentikan iterasi’ itu gimana cara hitungnya ya ?? dalam perkuliahan saya gak pernah dapat materinya

18 07 2018
yohanes candy

selamat siang pak, sy akan melakukan penelitian tentang k-means untuk mengelompokkan wilayah terhadap penyakit malaria di suatu kabupaten. kluster yg akan digunakan adalah bebas penyakit, potensial, dan rawan. atribut yg akan digunakan jumlah penderita, curah hujan, jumlah pasar, tempat pembuangan sampah.

pertanyaanya:
– apakah kmeans dapat digunakan pak?
– jika iya, bagaimana cara menentukan “daerah rawan” itu adlah cluster 3 atau “daerah rawan” itu cluster1? terimkasih dan mohon bantuannya

13 04 2018
herlina

pak untuk nilai k dari k-means apakah harus ganjil?

19 01 2018
Khalidia Mega Agusta

Pak Yudi saya mau tanya, saya sedang mengerjakan TA tentang identifikasi daging sapi layak konsumsi dengan metode k-means clustering, apakah itu memungkinkan pak? jadi hasil keluarannya nanti ada 4 kluster setelah dilakukan ektraksi warna terlebih dahulu.

12 12 2017
Imam Munawar

assalamualaikum pak yudi.
saya ingin bertanya tentang penggunaan metode k-means ini. Apakah bisa digunakan untuk melakukan cluster pada data log otentikasi server untuk menemukan peretas pada akses otentikasi?
hal yang menjadi pertimbangan terkait dengan peretas yaitu, banyaknya percobaan login dari ip pengguna, id yang sering melakukan akses login, serta password yang sering digunakan pada saat akses login.

9 12 2017
apa itu clastering – Vilang Dwi Irawan

[…] Penjelasan lengkap tentang k-means dapat juga dilihat pada Yudi Agusta’s K-Means Page. […]

15 09 2017
edi prayitno

assalamualaikum
saya mau tanya pak yudi, adakah contoh perhitungan manual kernel k means misal menggunakan data yang sederhana lalu kernel yg digunakan kernel gaussian?

10 07 2017
2 02 2017
Yuni

Selamat siang pak saya mau brtanya, saya sdang menyelesaikan skripsi saya tentang strategi marketing mahasiswa, kira2 output yang dihasilkan dari dari k-means apa ya pak ??

17 11 2016
zurraedah 95

Assalamualaikum
saya menggunakan metode k-means dalam penelitian sy untuk menglasifikasi kelompok Uang Kuliah Tunggal mahasiswa (UKT), di mana UKT tersebut terdiri dari 5 klp… apakah metode yang saya gunakan tepat?
mohon bantuannya

6 08 2016
ilma zaya

Assalamu’alaikum Pak Yudi saya mau tanya apakah sama metode hard k-means dengan metode k-means, kalau beda jelaskan perbadannya… Makasih pak

28 07 2016
Rully Hadinata

assalamualaikum
pak yudi, saya mau tanya, kan saya ada penelitian di sebuah perusahaan distributor motor, trus atribut disana ada banyak diantaranya jenis motor, jenis kelamin, agama, pengeluaran, pekerjaan, beserta wilayah dll. Yg mana semua atribut nya kategori. Nah saya mau mengklusterkan penjualan sepeda motor menjadi 3 area diantaranya Best area, medium area, dan worst area. Kira-kira algoritma klustering apa yg bagusnya digunakan? apakah bisa menggunakan k-modes?

29 07 2016
Yudi Agusta

Ada dua hal yang tercampur dalam penjelasan yang diberikan. Kasus yang diambil bisa dimodel secara dua arah baik clustering maupun klasifikasi. Kalau memang akan memodel clustering, bentuk clusternya tidak akan bisa didapatkan di awal. Bentuk cluster hanya akan bisa diketahui setelah pemodelan selesai. Untuk metodenya bisa menggunakan k-modes. Sedangkan kalau memang pemodelan akan digunakan untuk mencari karakteristik pembeli berdasarkan wilayahnya, bisa menggunakan metode klasifikasi seperti k-NN, decision tree, neural network, naive bayes, atau yang lainnya. Demikian dan semoga menjawab. Tks

21 06 2016
irma

Assalamualaikum… saya minta bantuan nya donk mengenai perhitungan tiga dimensi… bagaimana cara perhitungan

29 07 2016
Yudi Agusta

K-means mengakomodasi banyak dimensi, perhitungan jarak eucledian bisa mengakomodasi dimensi sebanyak-banyaknya. Bisa dilihat lagi referensi tentang jarak eucledian tersebut. Tks

22 05 2016
Endik

Bpak untuk deteksi outlier pada algoritma k-means ,menggunakan apa ya bpak ? Adakah referensinya ?
Terima kasih

29 05 2016
Yudi Agusta

Outliers tidak bisa dideteksi dlm pemodelan k-means. Outliers secara statistik bs dideteksi dgn distribusi t. Kl ingin mendeteksi outlierssekaligus melakukan pengelompokan, bs dgn metode mixture modelling, dengan asumsi kelompoknya dimodel dgn distribusi t. Tks

20 05 2016
fadillahsandy1

selamat sore pak.
saya saat ini sedang menyelesaikan skripsi saya.
saya juga menggunakan algoritma hard k-means dalam penggelompokan datanya.
prinsip k-means sendiri hanya menerima inputan berupa bilangan numerik atau desimal untuk dapat diproses.
sementara struktural data set saya yaitu berupa data kategorik( non-numerik).
pertanyaan saya adalah bagaimana cara memproses data kategorik ke algoritma k-means?
atau bagaimana transformasi dari data kategorik menjadi data numerik atau desimal?
adakah algoritma atau fungsi lain yg harus ditambahkan untuk memperoses data ketegorik menjadi data numerik atau desimal?
mohon bantuannya pak, terima kasih.

29 05 2016
Yudi Agusta

Kl menggunakan data kategori, tidak bs menggunakan k-means. Bisa menggunakan k-mode, atau k-means dgn hamming distance sbg ukuran jaraknya. Tks

5 05 2016
bapak scarlet

Mohon maaf, mau nanya kalo contoh buat elbow method ada gak?

6 05 2016
Yudi Agusta

Elbow method merupakan suatu teori yang bisa digunakan untuk mencari jumlah kelompok yang paling tepat untuk suatu kumpulan data yang dikelompokkan. Secara teori, jumlah kelompok yang paling sesuai merupakan titik persimpangan antara nilai RMSSTD (Root Means Square Standard Deviation) dan RS (R Square). Rumusnya bisa dilihat di halaman K-Means. Tks

5 04 2016
Dina

Assalamualaikum pak Yudi, saya ingin bertanya, jika saya melakukan penelitian mengenai pemetaan UMKM berbasis pariwisata, kira-kira metode clustering k-means atau fuzzy c-means ya pap yang cocok untuk penelitian saya? Terima kasih

8 04 2016
Yudi Agusta

Bisa kedua duanya. Yg fuzzy, bs menghasilkan model clustering yg lebih soft. Tks

26 01 2016
dansen purba

Dear Pak Yudi
saya sedang mencari referensi untuk judul Tugas Akhir saya
saya bermaksud menbangun sistem penjualan obat2an berbasis web di salah satu distribuor obat dimana dalam distributor tersebut ada beberapa perusahaan farmasi dengan produk2 yang berbeda2
apakan metode clustering ini bisa saya pakai untuk membangun satu database produk2 yang ada di distrubutor tersebut?kira2 metode apa yang cocok untuk permasalah tersebut…
terimakasih sebelumnya

20 03 2016
Yudi Agusta

Clustering biasanya digunakan untuk mengelompokkan data. Dari kasus yang dijelaskan, saya belum bisa memberikan rekomendasi. Kemungkinan suppliernya yang dikelompokkan atau data obat-obatannya yang dikelompokkan. Kalau untuk rekomendasi pemilihan supplier, mungkin bukan clustering yang digunakan, bisa saja menggunakan Analytical Hierarchy Process atau metode sejenisnya. Tks

8 12 2015
Endik

Assalamualaikum Pak Yudi,
untuk menentukan jumlah cluster ideal salah satunya menggunakan Elbow criterion , yang saya tanyakan adalah :
1.apakah metode Elbow itu merupakan preprosessing atau prosessing bpak maksudnya apakah sebelum K-means ditentukan dulu jumlahnya menggunakan Elbow atau K-means dulu baru Elbow ya bpak ?
2.Apakah metode Elbow menentukan jumlah cluster dengan memindah posisi centroid atau data terdekat atau hanya menentukan kerapatanya ya pak ?
3. apakah yang dimaksud Variable jumlah dimensi dari data (d) apkah sama dengn jumlah fitur ya pak ?

Bpak Yudi Atas perhatian dan jawabnya kami sampaikan Terima Kasih, semoga Tuhan selalu memberikan ilmu yang bermnfaat bagi Pak yudi

20 03 2016
Yudi Agusta

Elbow criterion adalah metode yang digunakan untuk menentukan jumlah cluster sebuah model clustering. Elbow criterion menentukan jumlah cluster dengan menghitung dua kriteria RMSSTD (Root Means Square Standard Deviation) dan RS (R Square), dan persimpangan kedua kriteria tersebut akan menentukan jumlah cluster yang cocok untuk data yang dikelompokkan. Demikian dan tks

19 06 2017
Jeffrey

Mau tanya, kenapa kok diberi nama root mean square standar deviation ? Pada bagian mana ada mean square nya?
Terima kasih

7 12 2015
Endik

Dalam menentukan jumlah cluster menggunakan RMSTD(Root Means Square Standard Deviation)
d = jumlah dimensi dari data
k=Jumlah cluster

yg dimaksud dengan dimensi dari data disini apa ya Bpak, apakah sama dengan cluster ke-i dan cluster ke-j ? mohon pencerahan
Terima Kasih

20 03 2016
Yudi Agusta

Dimensi data = jumlah variabel dalam data. Misalnya data mahasiswa ada variabel umur, ipk, dll. Tks

2 12 2015
laurens

Pak Yudi saya ijin bertanya,,, saya mengcluster data kelurahan dengan metode k-means, menurut bapak untuk memvalidasinya pake apa yang bagus pak??? terima kasih sebelumnya pak Yudi

7 12 2015
Endik

Banyak pa Bos laurens bisa pakai Sillhouet index atau DB Index dsb… segera diseleseikan proposalnya ya…

20 03 2016
18 11 2015
faiz

bagaimana ya untuk penambahan bobot/nilai pada K-Means di matlab?
http://www.razisolutions.com/2015/05/three-steps-to-get-account-of-google.html

7 09 2015
joni suhendar

saya dalam tugas tesis dengan menggunakan metode clustering, saya mempunyai data nilai siswa dalam wilayah tertentu, berikut dengan respon jawaban dan kuncinya. apakah bisa menggunakan metode k-means ?. kira-kira apa yang bisa saya hasilkan dari metode ini ?. terima kasih.

20 03 2016
Yudi Agusta

Bisa saja, tetapi dilihat lagi tujuannya ada atau tidak. Kalau ada data tanpa label class, semuanya bisa digunakan untuk pemodelan clustering. Tks

3 09 2015
Mukarromah :)

Pak apa yang dimaksud dengan threshold ?

20 03 2016
Yudi Agusta

Threshold – batasan (bisa batasan minimal, bisa batasan maksimal). Tks

1 08 2015
Hilda Tabafaikal

mau tanya pak, saya mencoba K-means dengan 3 variabel, hasil centroid dari iterasi terakhir = C1( 0.119 ; 0.571 ; 0.698) C2 (0.711 ; 0.310 ; 0.520)
berdasarkan nilai C1 & C2 kira2 keputusan akhir yg harus dipilih itu yang mana ya pak? ato ada tahap lagi untuk menentukan keputusan ? terima kasih

1 08 2015
Yudi Agusta

K-means merupakan metode untuk melakukan pengelompokan. Jadi model dengan kelompok-kelompok merupakan hasil dari proses dengan k-means. Untuk memanfaatkan hasil pemodelan lebih lanjut, harus ada data baru, yang ingin ditentukan apakah data baru tersebut lebih cocok untuk masuk kelompok C1 atau kelompok C2. Demikian proses yang ada, semoga bisa menjawab. Tks

2 08 2015
Hilda Tabafaikal

bisa dikasih usulan mengenai data baru tsb data apa? dalam hal ini saya menggunakan variabel RFM yang kemudian saya proses dengan k-means hingga iterasi terakhir didapat C1( 0.119 ; 0.571 ; 0.698) C2 (0.711 ; 0.310 ; 0.520). cuma saya masih bingung pak kira2 data yang harus saya pilih itu data kelompok C1/C2? setau saya, data yang diambil adalah data nilai centroid terbesar dari iterasi terakhir (mohon dikoreksi jika saya salah), berhubung nilai antara C1 & C2 diatas tidak dominan besar semua jadi sy bingung harus milih yg mana :D.

2 08 2015
Yudi Agusta

Clustering tidak mengharuskan untuk memilih salah satu cluster sebagai solusi. Semua cluster yang dihasilkan merupakan bagian dari model pengelompokan yang dihasilkan. Yang dimaksudkan dengan data baru adalah data RFM yang baru untuk mencari tahu data RFM yang baru lebih cocok ke cluster yang mana di dalam model pengelompokan yang sudah dihasilkan. Demikian, semoga menjawab. Tks

11 06 2015
Mukarromah :)

selamat pagi pak yudi,,,
pak mau tanya apakah ada ketentuan untuk menentukan maximum iterasi nya pak ? apakah menentukan maximum iterasi bergantung terhadap jumlah data dan atribut nya ?

12 06 2015
Yudi Agusta

Tidak ada ketentuan khusus pak, untuk jaga-jaga berikan saja nilai iterasi yang agak tinggi seperti 100 atau kalau datanya kompleks dinaikkan bahkan bisa sampai 1000. Kalau datanya sederhana, walaupun jumlahnya besar, biasanya proses fuzzy c-meance converged dengan iterasi yang tidak besar biasanya. Tks

12 05 2015
Nissa Irabawati

Selamata Pagi Pak Yudi….
Sy membandingkan C-Means dan FCM dalam pengelompokkan desa tertinggal.
Dlm penelitian sy, sy menggunakan kriteria waktu komputasi,minimum, nilai fungsi obajektif minimum dan rasio sw/sb minimum dalam menentukan metode terbaik antar keduanya. Tp sy terkendala sama teori yang menunjang mengenai fungsi objektif itu sendiri. mohon sedikit penjelasan makna dari fungsi objektif itu pak
Terimakasih

12 05 2015
Yudi Agusta

Fungsi objective merupakan fungsi tujuan yang akan bernilai maksimal/minimal pada saat model sudah convergence, artinya model sudah dalam bentuk terbaiknya. Karena c-means hanya menggunakan centroid dalam pembentukan modelnya, maka objective functionnya juga menggunakan hanya centroid saja, sedangkan fuzzy c-means menggunakan dua variabel yaitu centroid dan degree of membership. Demikian dan tks

5 05 2015
Mukarromah :)

pak apakah algoritma K-Means selalu konvergen dalam arti apakah algoritma ini dapat selalu berhenti atau akan berjalan terus ? jika berjalan terus bagaimana cara memberhentikanny ?
terima kasih ^_^

7 05 2015
Yudi Agusta

Biasanya convergence ke suatu model cluster tertentu. Cara memberhentikan adalah dengan menentukan konstanta error, yang membatasi batas maksimal perubahan degree of membership dari hasil pemodelan iterasi yang sedang berjalan dengan degree of membership dari hasil pemodelan iterasi berikutnya. Kalau perubahannya di bawah konstanta error, maka iterasi dihentikan. Tks

7 05 2015
Mukarromah :)

terima kasih atas jawabannya pak,,,, 🙂
yang mempunyai degree of membership adalah metode fuzzy k means kn pak y ? (mhon di betulkn jka slh,,hehehe) bagaimana jika yang digunakan adalah metode hard K-Means bagaimana cara memberhentiknnya ?

7 05 2015
Yudi Agusta

Sama dengan melihat ada tdknya data yg berpindah dari satu cluster ke cluster yg lain…..

7 05 2015
Yudi Agusta

Sama dengan melihat ada tdknya data yg berpindah dari satu cluster ke cluster yg lain…..

10 05 2015
Mukarromah :)

pak maaf nanya lagi,,, hehehe 🙂
bagaimana jika proses pengelompokkan datanya tidak pernah berhenti sampai kapanpun,,,,, bagaimana cara kita memberhentikannya pak,,,, ? karena sy ada membaca slh satu jurnal yg mengatakn bhwa kondisi berhenti untuk Fuzzy K-Means adalah ketika perubahan fungsi obyektif kurang dari konstanta error, JIKA TIDAK, maka ITERASI DINAIKKAN t=t+1, kemudian kembali lagi ke proses penentuan centroid.
yang mau saya tanyakan pak bagaimana dengan hard K-Means, apakah ada pilihan lain untuk memberhentikan pemodelan karna obyeknya selalu berpindah, dalam artian tidak pernah konvergen ?, apakah bisa dilakukan hal yang sama seperti fuzzy K-Means yaitu dengan menaikkan iteasi menjadi t=t+1 ?

10 05 2015
Yudi Agusta

Iya bisa, prosesnya sama….. kl ada kondisi tidak convergence, maka kl yg berpindah hanya data itu terus menerus, bisa diset max iterasi untuk memberhentikan proses clustering…. mungkin demikian n tks

10 05 2015
Mukarromah :)

terima kasih banyak atas jawabannya pak,,,, hehehe :):)

5 05 2015
Mukarromah :)

assalamualaikum pak,,,, ^_^
pak kebetulan saya mengambil judul tugas akhir tentang k-Means, ,,, yang mau sy tnyakn pak,,, kenapa kita harus melakukan penghitungan berulangkali (melakukan iterasi) sampai data tidak ada yang berpindah cluster. trus apa yang terjadi kalau kita hanya melakukan 1 iterasi saja ? mohon bantuannya pak,,, ^_^
terima kasih ^_^,,,,,,,,,,,,

7 05 2015
Yudi Agusta

Kalau iterasi hanya satu kali, kondisi model clusternya masih belum stabil, karena data kemungkinan dialokasikan ke cluster yang lain pada iterasi berikutnya. Tks

3 05 2015
pitra

assalamualaikum
mau tanya tentang perbedaan kmeans dan fuzzy k means itu apa apa saja ya pak.. ??

7 05 2015
Yudi Agusta

Kmeans berbeda dari fuzzy c-means dari cara mengalokasikan data kembali ke cluster. k-means melakukan pengalokasian data dengan nilai 1 atau 0 (ya atau tidak) – menjadi anggota cluster atau tidak, sedangkan fuzzy c-means mengalokasikan data ke cluster menggunakan konsep fuzzy, dimana setiap data dimasukkan ke suatu cluster dengan suatu nilai kemungkinan yang disebut dengan degree of membership yang nilainya antara 0 – 1. Tks

Leave a comment