Clustering dengan Algoritma K-means

Agnes Chintia Dewi
4 min readJan 15, 2021

--

Hello, friends! Bertemu kembali di sesi sharing mengenai data science. Di sesi sebelumnya kita sudah membahas tentang tiga kategori utama dalam metode pembelajaran yang sering digunakan dalam machine learning. Kali ini, kita akan mencoba untuk mengimplementasi salah satu metode pembelajaran tersebut yang akan diaplikasikan menggunakan algoritma clustering.

Source: Pixabay on Pexels

Algoritma K-means merupakan salah satu algoritma yang paling sederhana dan populer untuk menyelesaikan permasalahan clustering dalam unsupervised machine learning. Tujuan dari algoritma K-means yaitu mengelompokan data yang serupa dan menemukan pola yang mendasarinya dengan cara mencari angka tetap (k) pada dataset. Dengan kata lain, K-means mengidentifikasi jumlah k dalam centroid, dan menempatkan setiap data ke klaster terdekat, dengan menjaga centroid sekecil mungkin.

Cara Kerja Algoritma K-means

Mula-mula, algoritma k-means akan memilih grup dari suatu data secara random untuk menempatkan centroid yang akan digunakan untuk menjadi titik poin dari setiap klaster, langkah ini akan dilakukan secara berulang untuk mengoptimasi letak dari centroid tersebut. Klaster dikatakan sudah optimal jika letak dari centroid tidak berubah, serta mengetahui jumlah iterasi yang dilakukan.

Penerapan Algoritma K-means pada dataset

Pada percobaan kali ini menggunakan dataset Mall Customers. Langkah pertama yaitu mengimport library package yang dibutuhkan.

Selanjutnya, mengimport dataset yang akan digunakan, yakni Mall Customers.

Untuk menampilkan dataset 5 teratas menggunakan source code dibawah ini.

Kemudian, menghapus kolom ‘CustomerID’ karena hanya berupa urutan ID, dan ‘Gender’ karena tipe data berupa string sehingga tidak dapat di scale. Dalam kasus ini, untuk menganalisa pengunjung mall hanya menggunakan kolom Age, Annual Income atau pendapatan pertahun (per ribu US dollar), dan Spending Score atau pengeluaran pertahunnya.

Selanjutnya, jika terdapat pemanggilan kolom atau atribut untuk menjadikannya sebagai parameter menjadi lebih mudah. Maka dilakukan perubahan nama kolom.

Selanjutnya, kita akan memilih atribut mana yang akan kita klasterkan. Untuk mengetahui pengelompokan Annual income dan Spending score pengunjung mall berdasarkan umurnya yakni dengan atribut Age.

Untuk mengetahui sebaran datanya, maka dilakukan langkah berikut.

Kemudian, kita harus mengubah variable dataframe ke array.

Terdapat ukuran data yang sangat berbeda jauh di dalamnya, dalam tahap ini harus dilakukan standarisasi, sehingga ukuran data yang dimiliki berkisar diantara 0–1 dengan menggunakan MinMax Scaler.

Selanjutnya, untuk mengetahui jumlah klaster yang akan dilakukan. Maka kita harus melakukan pengukuran dengan elbow method untuk mengetahui jumlah klaster yang optimal.

Terdapat garis yang mengalami patahan seperti elbow pada k=4, berarti jumlah klaster yang optimal yaitu 4.

Dengan soure code diatas kita telah menetapkan jumlah klasternya, dan selanjutnya kita akan menampilkan nilai dari centroidnya.

Kemudian, kita dapat menambahkan kolom kluster pada data frame Mall Customers.

Langkah selanjutnya yaitu memvisualisasikan hasil klaster agar terlihat dengan jelas. Tahap visualisasi menggunakan library matplotlib yang diinisialisasi menjadi plt agar pemanggilannya lebih mudah. Berikut hasil dari clustering menggunakan KMeans.

Dari hasil klastering diatas terdapat 4 klaster berdasarkan Age dengan Annual income dan spending score yang kurang lebih sama.

--

--