Machine Learning: K-Means Clustering

Machine Learning: K-Means Clustering

JEBAKAN CENTROID

Dari pembahasan di atas, sudah saya tuliskan bahwa titik krusial berhasil tidaknya (baik tidaknya) metode ini adalah saat menentukan jumlah klusternya (nilai K).Oleh karena itu, untuk permasalahan di atas, hasil klusternya akan berbeda, sesuai K yang dipilih.

Jika terlalu sedikit K (misal 2), maka pembagian kluster menjadi cepat, namun mungkin ada informasi tersembunyi yang tidak terungkap.

Jika K=3, maka ada informasi tambahan 1 kluster. Yang mungkin, akan memberi kita informasi, apa arti dari kluster ketiga ini.

Jika K=4, maka pembagian sangat baik. Namun dengan adanya 4 kluster, maka butuh 4 perlakuan berbeda untuk pelanggan di masing-masing kluster ini.

Jika K=10, maka terlalu banyak kluster. Mungkin akan terlalu sulit memilih strategi yang tepat (strategi marketing misalnya) untuk masing-masing klusternya.

Sebagai ilustrasi, bisa dilihat pada ilustrasi berikut:

K=3, K=4 dan K=5

Untuk mengatasi ini, maka ada metode perbaikan K-Means Clustering yang disebut dengan K-Means++ yang akan memilih jumlah awal kluster secara tepat.

Kita tidak akan membahas K-Means++ di pembahasan kali ini, namun akan kita gunakan di sesi latihan dan sebuah metode elbow yang akan membantu kita untuk memilih nilai K yang tepat dengan menggunakan metricWCSS (Within Cluster Sum of Squares):

Formula WCSS untuk 3 kluster

Formula di atas terlihat rumit, namun sebenarnya sangat sederhana. Itu adalah formula WCSS untuk menghitung 3 kluster.

Jika kita ingin menghitung 2 kluster, maka formulanya menjadi begini:

Formula WCSS untuk 2 kluster

Jadi tinggal kita ingin berapa kluster. Semakin banyak kluster, maka formulanya menjadi semakin panjang, itu saja.

Bagaimana cara membacanya?

Pada sisi kiri bisa dilihat WCSS sebagai variabel dependennya. Kemudian ada simbol Sigma (seperti E), yang menyatakan jumlah kuadrat dari jarak tiap titik Pi yang ada pada kluster 1. Mengapa dikuadratkan? Karena memang sebutannya adalah Sum of Squares (jumlah kuadrat).

Selanjutnya hasil penjumlahan kluster 1 ditambah dengan hasil kudrat jarak untuk tiap data poin terhadap titik pusat kluster dua, dan seterusnya sesuai jumlah kluster yang kita inginkan.

Kemudian berapa jumlah kluster seharusnya? tinggal dilihat perbandingan WCSS untuk 2 kluster, 3 kluster, 4 dan seterusnya. Yang kita pilih adalah ketika perubahan nilai WCSS nya sangat signifikan, seperti sebuah siku (elbow). Oleh karena itu cara pemilihan ini disebut dengan elbow method.

Contoh perhitungan WCSS dapat dilihat pada grafik berikut:

Grafik perhitungan WCSS untuk sebuah contoh dataset.
Semakin kecil skor WCSS, semakin baik. Sumbu x adalah jumlah kluster, sumbu y adalah skor WCSS.

Bisa dilihat bahwa saat K=1, nilai WCSS sangat tinggi. Kemudian menurun terus sampai K=5 terlihat membentuk seperti sebuah siku. Mulai K=6 sampai K=10 penurunan skor WCSS sudah tidak signifikan. Dengan demikian, dapat diketahui bahwa jumlah kluster yang tepat untuk grafik di atas adalah 5.

Untuk melanjutkan membaca silakan klik halaman berikutnya di bawah ini.

Bagikan artikel ini:

Pages: 1 2 3 4

Subscribe
Notify of
guest
45 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Rizki
Rizki
11 months ago

makasih pak, sangat jelas detail dan bisa di jalankan tanpa adanya kesulitan

Eko
Eko
8 months ago

Kalau mengacu pada formula machine learning (Tom M. Mitchell), Formula T,P,E (Task,Performance,Experience) untuk kasus clustering/unsupervised learning ini mengidentifikasinya bagaimana ya pak?

Zulfikar
Zulfikar
6 months ago

cara menampilkan table dataset dan dataframe gimana? thanks

Zulfikar
Zulfikar
Reply to  MB Herlambang
5 months ago

saya kurang paham spyder soalnya saya hanya menggunakan jupyter notebook yg muncul hanya gambar elbow dan hasil clustering nya saja apa ada cara lain jika menggunakan jupyter notebook? Terimakasih pak

Zulfikar
Zulfikar
Reply to  MB Herlambang
5 months ago

kalau tabel basil clustring (y_means) bisa? maaf banya tanya baru belajar? saya coba pake algoritma r sudah bisa cuman install spyder ada error saya ga tau kenapa jadi saya masih penasaran

Zulfikar
Zulfikar
Reply to  MB Herlambang
5 months ago

supaya tahu id mana di cluster mana..karena di website bapak tidak ada keteranganya cluster merah itu id berapa saja dst..terimakasih pak

Zulfikar
Zulfikar
Reply to  MB Herlambang
5 months ago

terimakasih banyak pak infonya sangat membantu semoga ilmunya berkah ya pak ๐Ÿ˜€

dian samuel
dian samuel
5 months ago

halo pak, saya mau bertanya, dari sekian banyak kolom yang ada dalam dataset, bagaimana menentukan 2 kolom terakhir untuk digunakan dalam kmeans clustering?

dian samuel
dian samuel
Reply to  MB Herlambang
5 months ago

misalnya pak, kita mengacu penggunaan data iris yang sering digunakan, nah dari kebanyakan pengaplikasian iris dataset pada kmeans clustering,variabel yang digunakan adalah petal width dan petal length. apakah ada teknik khusus pak? ataukah di kmeans itu sendiri, sudah memilih variabel mana yang cocok untuk dikelompokkan?

dian samuel
dian samuel
Reply to  MB Herlambang
3 months ago

halo pak, mau bertanya lagi, bagaimana pengerjaan taknik elbow secara manual ya pak?

dian samuel
dian samuel
Reply to  MB Herlambang
3 months ago

terimakasih pak, saya sudah mencoba. Saya mau bertanya kembali, apakah bapak ada memuat artikel tentang k-means yang memakai trick kernel (kernel K-Means)? saya sudah mencari di website ini dan hasilnya not found.

Resty
Resty
5 months ago

Saya bary pertama kali memakai RStudio ini, mu tanya kalau muncul “Error : objeck ‘wcss’ not found’ itu kenapa ya?. Itu muncul nya setelah baris for di Run

Resty
Resty
Reply to  MB Herlambang
4 months ago

Terimakasih Pak, yg itu sudah berhasil dan sudah muncul grafiknya. Cuman saya masih bingung dengan hasilnya, hasil bapak kenapa bisa 50000, 100000 dst…? Sedangkan grafik saya hasilnya 0e+00 dan 4e+10, itu kenapa ya? boleh dibantu lagi pak…

Resty
Resty
Reply to  MB Herlambang
4 months ago

Iya pak membahas k-means

Resty
Resty
Reply to  MB Herlambang
4 months ago

Sudah di eksekusi dan grafiknya sudah muncul. Kalau grafik bapak kan bagian wcss di grafiknya itu mucul angka 50000, 100000, 150000 dst. sedangkan saya muncul di bagian wcss grafiknya itu 0e+00, 4e+10. itu kenapa ya pak? apa itu karena pengaruh data yang dimasukkan?

Resty
Resty
Reply to  MB Herlambang
4 months ago

Iya pak datanya menggunakan data sendiri, jadi tidak ada masalah berarti ya pak? saya kira itu ada error atau apa. Terimakasih banyak pak jawabannya sangat membantu sekali

Ramadhan
Ramadhan
4 months ago

caranya gimana pak? apa eksekusi perbaris? saya error terus

Abdul
Abdul
3 months ago

Aslm pak..mo tanya ttg k-means..
Jika data yg saya punya dlm bentuk data categorical sebanyak 7 fitur dan datanya sebanyak 100 baris..
Bagaimana cara mengubah data categorical ke dlm numeric?
Kl menggunakan python source code nya bagaimana?
Terima kasih..

dede brahma
dede brahma
2 months ago

mas izin belajar dari code nya.
terima kasih buat ilmunya ๐Ÿ™‚

Muhammad Taufik
Muhammad Taufik
2 months ago

pak saya mau bertanya kalo untuk data pekanggan hotel bisa di cluster?dan outputnya segementasi pelanggan bisa?saya masih kurang paham pak terimakasih

dian samuel
dian samuel
2 months ago

selamat siang pak, mau bertanya saya punya data facebook untuk user yang melakukan penjualan online baik melalui vidio, status, photo dan link dengan feature status_publis yang berisi tanggal dan waktu publis, dan reaksi terhadap penjualan yakni berupa comment, likes, share. Kemudian setelah saya analisis ternyata status_publis tersebut bisa saya perlebar lagi menjadi hari publis jualan, waktu publis jualan, bulan publis jualan, dan tahun publis jualan dengan satuan yang berbeda-beda. Saya mau bertanya, apakah saya bisa mengelompokkan data saya tersebut menggunakan k-means walaupun satuannya berbeda-beda yakni ada yang satuan bulan, tahun, hari, dan jam serta untuk reaksi seperti commens, likes, shares… Read more »

dian samuel
dian samuel
Reply to  MB Herlambang
2 months ago

oo begitu terimakasih pak. Mau bertanya kembali, apakah bapak pernah membahasa Kernel K-Means?

Linggar bagas
2 months ago

Pak kalau hasil uji k-means pakai silhuette coefficient dan purity measure itu bagaimana penerapannya pada python, mohon bantuanya pak

Ekki Rizki Ramadhan
Ekki Rizki Ramadhan
1 month ago

Hallo pak, Maaf sebelumnya pak, saya ingin bertanya untuk pengukuran kualitas dari clustering. sebenarnya saya sendiri masih bingung dalam hal penerapan Teknik Elbow, silhouette, dan DBI. dan jujur, saya sangat kurang paham dalam statistika karena memang diajarkan hanya untuk digunakan, menurut bapak, dari ketiga metoda diatas yang paling cocok untuk pengukuran clustering itu yang mana ya pak? selain itu untuk keyword dalam mencari di jurnal sekiranya apa ya pak? sudah beberapa belakangan ini saya sedikit buntu. sekian dan terima kasih pak

Ekki Rizki Ramadhan
Ekki Rizki Ramadhan
Reply to  MB Herlambang
1 month ago

Terima kasih pak atas jawabannya. Saya ingin bertanya kembali. Sebelumnya, Saya sudah mencoba ketiganya pak, tapi hasilnya tidak bersinergi. Jika salah satunya hasilnya bagus, apakah saya perlu menggunakan salah satunya saja pak?

Misal, di dalam riset saya silhouette sangat bagus jika k = 2, sedangkan di elbow k=2 & k=3 termasuk, dan pada davies bouldin k=5 yang hasilnya bagus. Nah jika dilihat dari validasinya berarti lebih baik saya memasukkan sillhouette dan elbow ya pak?