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.

Pages: 1 2 3 4

Subscribe
Notify of
guest

67 Comments
Oldest
Newest Most Voted
Rizki
Rizki
6 years ago

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

Eko
Eko
6 years 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 years ago

cara menampilkan table dataset dan dataframe gimana? thanks

Zulfikar
Zulfikar
Reply to  MB Herlambang
6 years 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
6 years 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
6 years 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
6 years ago

terimakasih banyak pak infonya sangat membantu semoga ilmunya berkah ya pak 😀

dian samuel
dian samuel
6 years 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
6 years 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
6 years ago

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

dian samuel
dian samuel
Reply to  MB Herlambang
6 years 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
6 years 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
6 years 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
6 years ago

Iya pak membahas k-means

Resty
Resty
Reply to  MB Herlambang
6 years 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
6 years 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
6 years ago

caranya gimana pak? apa eksekusi perbaris? saya error terus

Abdul
Abdul
6 years 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
6 years ago

mas izin belajar dari code nya.
terima kasih buat ilmunya 🙂

Muhammad Taufik
Muhammad Taufik
6 years 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
6 years 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
6 years ago

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

Linggar bagas
6 years 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
6 years 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
6 years 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?

enjel
enjel
5 years ago

mas saya mau bertanya tentang Mengimpor dataset dataset = pd.read_csv(‘Pengunjung_mall.csv’) seperti apa

Fitri
Fitri
5 years ago

Maaf mau tanya mengenai line 8 bagian python, kenapa ya harus ada proses slicing?

Fitri
Fitri
Reply to  MB Herlambang
5 years ago

baik pak, tapi bagaimana caranya misal kita memiliki variabel lebih dari 2, misal dengan 5 variabel? apakah masih bisa digambarkan plotnya?
terimakasih….

Fitri
Fitri
Reply to  MB Herlambang
5 years ago

lantas… bagaimana pak caranya mengetahui data kita telah diklasterkan dengan baik, seperti di line 38.

Fitrianingsih
Fitrianingsih
Reply to  MB Herlambang
5 years ago

yaps, maaf pak mau tanya sekali lagi. apakah bapak ada rekomendasi buku mengenai python yg menjelaskan secara lengkap mengenai K-Means Elbow dan Machin learning lainnya? terimakasih pak…

Fitrianingsih
Fitrianingsih
Reply to  MB Herlambang
5 years ago

yappps, terimakasih pak atas jawabannya.
sangat membantu🙂

ardin siregar
ardin siregar
4 years ago

cara menghiyung akurasi dari k means bagaimana pak ?

ranis
ranis
4 years ago

Halo pak saya mau bertanya pada line 8 melakukan slicing menggunakan python. Cara menampilkan kolom tabelnya bagaimana ya pak. Saya menggunakan jupyter kolom tersebut tidak tampil.

ahmad
ahmad
4 years ago

mohon maaf pak. ini kan baru sampai mengelompokan data sesuai kedekatannya.
nah jika saya ingin memasukan data baru (setelah terbentuk klaster) untuk mengetahui, kira2 data yg saya input masuk ke klaster yg mana. apakah bisa?
jika ya… apakah bisa meng-share contoh codenya.. terimakasih

Teguh Juang Sinaga
Teguh Juang Sinaga
3 years ago

Izin bertanya Pak, random_state=42 itu pakai default value ya?, darimana ya dapat 42 dan apakah pengaruh nya kalau kita salah dalam menentukan random_state Pak?, Terimakasih banyak Pak🙏🏻

Yoga
Yoga
1 year ago

cara memsukan dataset ke jupyternya gimana?

Firos
Firos
1 year ago

makasih ya… ini lagi cocok sambil skripsi :”)