My IBM Masuk Berlangganan
Apa itu k-means clustering?

Apa itu k-means clustering?

Menerapkan K-means dengan watsonx.ai Daftar untuk mendapatkan pembaruan AI
Ilustrasi dengan kolase piktogram awan, diagram lingkaran, piktogram grafik

Diterbitkan: 26 Juni 2024
Kontributor: Eda Kavlakoglu, Vanna Winland

K-Means clustering adalah algoritma pembelajaran tanpa pengawasan yang digunakan untuk pengelompokan data, yang mengelompokkan titik data yang tidak berlabel ke dalam kelompok atau kluster.


Ini adalah salah satu metode pengelompokan paling populer yang digunakan dalam machine learning. Tidak seperti pembelajaran yang diawasi, data pelatihan yang digunakan algoritma ini tidak berlabel, artinya titik data tidak memiliki struktur klasifikasi yang ditentukan.

Meskipun ada berbagai jenis algoritma pengelompokan, termasuk eksklusif, tumpang tindih, hirarkis, dan probabilistik, algoritma k-means clustering adalah contoh metode pengelompokan eksklusif atau "keras". Bentuk pengelompokan ini menetapkan bahwa titik data dapat ada hanya dalam satu kluster. Jenis analisis kluster ini umumnya digunakan dalam ilmu data untuk segmentasi pasar, pengelompokan dokumen, segmentasi gambar, dan kompresi gambar. Algoritma k-means adalah metode yang banyak digunakan dalam analisis kluster karena efisien, efektif dan sederhana.

K-mean adalah algoritma pengelompokan berbasis centroid berulang yang mempartisi kumpulan data menjadi kelompok serupa berdasarkan jarak antara centroid mereka. Centroid, atau pusat kluster, adalah rata-rata atau median dari semua titik di dalam kluster, tergantung pada karakteristik data.

Bagaimana cara kerja k-means clustering?

Bagaimana cara kerja k-means clustering?

K-means clustering adalah proses berulang untuk meminimalkan jumlah jarak antara titik-titik data dan pusat klusternya.

Algoritma k-means clustering beroperasi dengan mengkategorikan titik-titik data ke dalam kluster dengan menggunakan ukuran jarak matematis, biasanya euclidean, dari pusat kluster. Tujuannya adalah untuk meminimalkan jumlah jarak antara titik data dan kluster yang ditugaskan. Titik data yang paling dekat dengan centroid dikelompokkan bersama dalam kategori yang sama. Nilai k yang lebih tinggi, atau jumlah kluster, menandakan kluster yang lebih kecil dengan detail yang lebih besar, sedangkan nilai k yang lebih rendah menghasilkan kluster yang lebih besar dengan detail yang lebih sedikit.

Menginisialisasi k

Algoritma k-means clustering konvensional membutuhkan beberapa langkah. Langkah pertama adalah menginisialisasi centroid di mana sama dengan jumlah kluster yang dipilih untuk kumpulan data tertentu. Pendekatan ini menggunakan seleksi acak atau metode pengambilan sampel centroid awal.

Menetapkan centroid

Langkah selanjutnya mencakup proses berulang dua langkah berdasarkan algoritma machine learning maksimalisasi ekspektasi.1 Langkah ekspektasi menetapkan setiap titik data ke centroid terdekatnya berdasarkan jarak (sekali lagi, biasanya euklidean). Langkah maksimisasi menghitung rata-rata dari semua titik untuk setiap kluster dan menetapkan kembali pusat kluster, atau centroid. Proses ini berulang hingga posisi centroid mencapai konvergensi atau jumlah iterasi maksimum telah tercapai.

K-means clustering sederhana tetapi sensitif terhadap kondisi awal dan outlier. Penting untuk mengoptimalkan inisialisasi centroid dan jumlah kluster k, untuk mencapai kluster yang paling bermakna. Ada beberapa cara untuk mengevaluasi dan mengoptimalkan komponen pengelompokan algoritma dengan menggunakan metrik evaluasi dan metode pengambilan sampel centroid awal.

Metrik evaluasi kluster

Metrik evaluasi kluster

Kluster yang berkualitas mengandung setidaknya dua properti: 

  1. Semua titik data dalam suatu kluster harus serupa.
  2. Kluster harus berbeda satu sama lain.

Sifat-sifat ini dicapai dengan meminimalkan jarak intrakluster dan memaksimalkan jarak antarkluster dari semua titik data dalam kumpulan data. Dengan kata lain, makin kompak dan terisolasi sebuah kluster dari kluster lain, makin baik. Tujuan dari algoritma k-means clustering adalah untuk meminimalkan jumlah kesalahan kuadrat (SSE).2 Menghitung SSE dari jarak euclidean kuadrat dari setiap titik ke centroid terdekatnya mengevaluasi kualitas dari penempatan kluster dengan mengukur variasi total dalam setiap kluster.

Metrik evaluasi kluster memeriksa kualitas dan memberikan perspektif yang berbeda untuk menganalisis hasil pengelompokan. Ini membantu dalam memilih jumlah kluster yang optimal dan inisialisasi centroid. Metrik evaluasi berikut adalah cara umum untuk mengukur jarak intrakluster dan interkluster dalam pengelompokan.

Inersia

Algoritma k-means clustering bertujuan untuk memilih centroid, atau pusat kluster, yang meminimalkan inersia, sebuah metrik evaluasi yang mengukur seberapa baik sebuah kumpulan data dikelompokkan berdasarkan metrik jarak. Inersia dihitung dengan mengukur jarak antara titik data dan pusatnya, mengkuadratkan jarak tersebut dan menjumlahkan kuadrat tersebut untuk setiap titik data dalam kluster. Jumlah atau nilai inersia adalah jarak intrakluster. Makin rendah jumlahnya makin baik karena ini berarti titik data dalam kluster tersebut kompak atau lebih mirip.3

Indeks Dunn

Properti kedua diukur dengan indeks Dunn. Indeks Dunn merepresentasikan hubungan antara jarak antar kluster minimum dan jarak intrakluster maksimum. Kluster dengan jarak intrakluster yang tinggi mengindikasikan kualitas yang lebih baik karena ini berarti kluster-kluster tersebut sebisa mungkin berbeda satu sama lain.4

 

Mengoptimalkan kinerja k-means

Mengoptimalkan kinerja k-means

Optimasi penting ketika menggunakan k-means untuk mencapai hasil pengelompokan terbaik.

Algoritma k-means bersifat nondeterministik karena langkah inisialisasinya acak. Metode ini menyiratkan bahwa jika algoritma dijalankan dua kali pada data yang identik, penugasan kluster mungkin berbeda. Untuk mencapai hasil pengelompokan yang optimal, pemilihan centroid awal yang tepat dan jumlah kluster yang optimal akan meningkatkan akurasi dan kecepatan algoritma k-means.

Menginisialisasi centroid kluster

Setiap kluster diwakili oleh centroid, titik data yang mewakili pusat kluster. K-means mengelompokkan titik-titik data yang serupa ke dalam kluster dengan meminimalkan jarak antara titik-titik data dalam sebuah kluster dengan centroid atau nilai rata-rata k. Tujuan utama algoritma k-means adalah untuk meminimalkan jarak total antara titik-titik dan pusat kluster yang telah ditetapkan. Algoritma beroperasi secara iteratif, dan pemilihan partisi awal dapat sangat mempengaruhi kluster yang dihasilkan.

Risiko inisialisasi acak menghasilkan hasil yang tidak konsisten. Metode inisialisasi centroid ada untuk mengurangi risiko ini. Sebuah studi dari NUS Computing menjelaskan dan membandingkan metode seperti k-means++ yang populer dengan inisialisasi acak.5

K-means ++

K-means++ adalah algoritma k-means yang mengoptimalkan pemilihan satu atau beberapa centroid kluster awal. Dikembangkan oleh peneliti Arthur dan Vassilvitskii, k-means++ meningkatkan kualitas penugasan kluster akhir.6

Langkah pertama untuk inisialisasi dengan menggunakan metode k-means++ adalah memilih satu centroid dari kumpulan data. Untuk setiap centroid berikutnya, hitung jarak setiap titik data dari pusat kluster terdekatnya. Centroid berikutnya dipilih dengan mempertimbangkan kemungkinan bahwa suatu titik berada pada jarak yang proporsional dari centroid terdekat yang dipilih sebelumnya. Proses mengeksekusi iterasi sampai jumlah pusat kluster yang dipilih telah diinisialisasi.

Berikut adalah tutorial dari IBM Developer yang menggunakan metode k-means++ untuk inisialisasi.

Memilih jumlah kluster yang optimal

Idealnya, algoritma k-mean berulang sampai jumlah kluster optimal tercapai. Jumlah maksimum iterasi terpenuhi setelah centroid mencapai konvergensi.

Metode elbow

Salah satu metode untuk mencapai jumlah kluster yang optimal adalah metode elbow. Metode elbow adalah metode grafis untuk menemukan jumlah kluster optimal dalam algoritma k-means clustering. Metode ini mengukur jarak euclidean antara setiap titik data dengan pusat kluster dan memilih jumlah kluster berdasarkan perubahan dalam "within cluster sum of squares" (WCSS). Nilai ini mewakili total varians dalam setiap kluster yang diplot terhadap jumlah kluster.7

Langkah pertama dari metode elbow adalah menghitung WCSS untuk setiap cluster (k). Kemudian, nilai WCSS diplot sepanjang sumbu y dan jumlah kluster diplot pada sumbu x. Ketika jumlah kluster meningkat, titik plot harus membentuk pola yang konsisten. Dari pola ini, menghasilkan rentang untuk jumlah kluster yang optimal.8 Saat memutuskan jumlah kluster, pertimbangkan biaya komputasi. Makin besar jumlah kluster, makin banyak daya pemrosesan yang dibutuhkan terutama dengan kumpulan data yang besar.

Metode ini belum tentu yang terbaik, terutama untuk kumpulan data dengan dimensi tinggi atau bentuk tidak beraturan. Metode lain untuk memilih jumlah kluster yang optimal adalah analisis siluet.9

Aplikasi dalam machine learning

Aplikasi dalam machine learning

Algoritma k-means clustering digunakan di hampir setiap domain dan industri. Ini biasanya diterapkan pada data machine learning yang memiliki sedikit dimensi, bersifat numerik, dan dapat dengan mudah dibagi.

Para peneliti telah mengintegrasikan k-means clustering dengan metode pembelajaran mendalam seperti CNN dan RNN untuk meningkatkan kinerja berbagai tugas machine learning seperti visi komputer, NLP, dan banyak domain lainnya. Berikut adalah daftar aplikasi k-means clustering yang umum:

Segmentasi pelanggan: Praktik membagi pelanggan perusahaan ke dalam kelompok-kelompok berdasarkan karakteristik umum yang mencerminkan kesamaan. Strategi ini memungkinkan perusahaan untuk menargetkan kluster atau kelompok pelanggan tertentu untuk kampanye iklan tertentu.

Klasifikasi dokumen: Prosedur untuk mengalokasikan berbagai kelas atau categories ke dokumen. Metode ini digunakan oleh banyak organisasi untuk memoderasi konten. Lihat dokumentasi Watson Discover ini untuk membuat pengklasifikasi dokumen.  

Segmentasi gambar: Teknik visi komputer yang membagi gambar digital menjadi kumpulan piksel yang berbeda. Penelitian ini menyelami bagaimana model k-means digunakan untuk membantu mengidentifikasi batas dalam citra medis.10

Mesin rekomendasi: Aplikasi di seluruh web menggunakan mesin rekomendasi. Analisis komponen utama dan teknik k-means clustering digunakan untuk membangun rekomendasi produk untuk bisnis e-commerce.11

Melatih model k-means dengan python

Melatih model k-means dengan python

Untuk pengalaman belajar langsung, lihat tutorial yang menjelaskan dasar-dasar melakukan k-means clustering di Python dengan menggunakan IBM Watson Studio di watsonx.ai.

Tutorial ini menggunakan modul dari pustaka scikit-learn (sklearn) yang melakukan k-means clustering. Modul ini mencakup teknik pengoptimalan bawaan yang dimanipulasi oleh parameter kelasnya. Kelas untuk modul terlihat seperti ini:

class sklearn.cluster.KMeans(n_clusters=8*init='k-means++'n_init='auto'max_iter=300tol=0.0001verbose=0random_state=Nonecopy_x=Truealgorithm='lloyd')12

Parameter termasuk jumlah kluster yang akan dibentuk dan jumlah centroid yang akan dihasilkan (n_cluster). Ada dua metode inisialisasi yang tersedia k-means++ dan random. Ini juga mencakup atribut untuk mengatur jumlah maksimum iterasi. Setiap iterasi dimulai dengan mempartisi kumpulan data menjadi nilai n_clustersparameter.

Pustaka ini digunakan untuk menghasilkan kumpulan data uji dan melakukan pengelompokan:  

import pandas as pd 
import sklearn
import matplotlib.pyplot as plt
import seaborn as sns
import numpy

from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
Keuntungan dan kekurangan

Keuntungan dan kekurangan

Keuntungan

Beberapa manfaat umum k-means clustering dalam aplikasi machine learning meliputi:

Sederhana: K-means clustering mudah dipahami dan dipraktikkan. Ini adalah teknik machine learning tanpa pengawasan yang paling populer.

Cepat: K-means clustering dirancang dengan pendekatan iteratif yang sederhana secara komputasi. Algoritma k-means clustering lebih cepat daripada pengelompokan hierarkis yang melibatkan pembangunan struktur kluster seperti pohon dan membutuhkan penghitungan jarak berpasangan antara semua titik data.

Dapat diskalakan: K-means juga mudah diskalakan ke kumpulan data besar dan menggeneralisasi ke kluster dengan berbagai bentuk dan ukuran, yang ideal untuk analisis kluster. Karena algoritma ini sangat efisien secara komputasi, algoritma ini lebih dapat diskalakan dan cocok untuk kumpulan data yang besar dibandingkan dengan metode lainnya.

Kekurangan 

Beberapa tantangan umum yang terkait dengan k-means clustering meliputi:

Ketergantungan pada parameter input: K-means clustering bergantung pada parameter input yang diatur dengan benar. Menginisialisasi centroid dan jumlah kluster yang tepat sangat cocok untuk mendapatkan hasil kluster yang bermakna. Inisialisasi centroid yang buruk dapat menyebabkan peningkatan waktu berjalan dan penugasan kluster berkualitas rendah. Banyak penelitian telah dilakukan untuk meningkatkan prosedur inisialisasi centroid untuk hasil pengelompokan yang lebih baik dan waktu konvergensi yang lebih cepat.

Kemungkinan kinerja yang kurang baik pada kumpulan data tertentu: K-means bekerja secara efektif ketika kumpulan data berisi kluster yang ukurannya serupa dan tidak ada outlier atau variasi kepadatan yang menonjol. K-means berkinerja buruk ketika kumpulan data mengandung banyak variasi atau memiliki banyak dimensi. Data yang tidak sesuai dengan asumsi kumpulan data tertentu dapat menyebabkan k-means menghasilkan kluster berkualitas rendah.13 Sebagai contoh, kluster yang berukuran tidak merata dapat membuat centroid condong ke arah kluster yang lebih besar sehingga menyebabkan bias dan kesalahan klasifikasi di antara kluster yang lebih kecil. Untuk mengatasi masalah ini, k-mean dapat digeneralisasi menggunakan model probabilistik seperti Gaussian Mixture node.

Dampak outlier yang signifikan: Outlier memiliki dampak yang signifikan pada hasil k-means clustering. Kluster yang berbeda harus berjauhan, tetapi tidak terlalu jauh untuk membelokkan titik data. Penting untuk mempertimbangkan asumsi data sebelum menerapkan k-means. K-means sangat sensitif terhadap outlier karena bertujuan untuk menentukan centroid dengan rata-rata nilai dengan kluster. Sensitivitas ini membuatnya rentan terhadap overfitting untuk menyertakan outlier ini.

Ambil langkah selanjutnya

Latih, validasi, lakukan tuning, dan terapkan AI generatif, model dasar, dan kemampuan machine learning dengan IBM watsonx.ai, studio perusahaan generasi berikutnya untuk pembangun AI. Bangun aplikasi AI dalam waktu singkat, dengan sedikit data.

Jelajahi watsonx.ai Pesan demo langsung
Catatan kaki

1 Todd K. Moon, "The Expectation Maximization Algorithm, " IEE Signal Processing Magazine, https://ieeexplore.ieee.org/document/543975 (tautan berada di luar ibm.com).

2 Kevin Arvai, "K-Means Clustering in Python: A Practical Guide," https://realpython.com/k-means-clustering-python/#:~:text=Understanding%20the%20K%2DMeans%20Algorithm,-Conventional%20k%2Dmeans&text=The%20quality%20of%20the%20cluster,point%20to%20its%20closest%20centroid. (tautan berada di luar ibm.com).

3 "Clustering: K-Means," https://www.codecademy.com/learn/dspath-unsupervised/modules/dspath-clustering/cheatsheet (tautan berada di luar ibm.com).

4 "Dunn Index," https://ruivieira.dev/dunn-index.html (tautan berada di luar ibm.com).

5 Xiangyuan, Siyuan, Hao, "A survey on k-means initialization methods," https://www.comp.nus.edu.sg/~arnab/randalg20/HLW.pdf (tautan berada di luar ibm.com)

6 Arthur, Vassilvitskii, "k-means++: The Advantages of Careful Seeding, " Standford, https://theory.stanford.edu/~sergei/papers/kMeansPP-soda.pdf (tautan berada di luar ibm.com).

7 Gutierrez, "Unsupervised Learning: Evaluating Clusters," https://opendatascience.com/unsupervised-learning-evaluating-clusters/ (tautan berada di luar ibm.com)

8 "K-means clustering using Python on IBM watsonx.ai," https://developer.ibm.com/tutorials/awb-k-means-clustering-in-python/ , step 4 (tautan berada di luar ibm.com)

9 Shutaywi, Kachouie, "Silhouette Analysis for Performance Evaluation in Machine Learning with Applications in Clustering," June 2021, https://www.mdpi.com/1099-4300/23/6/759 (tautan berada di luar ibm.com).

10 Dhanachandra, Manglem, Chanu, "Image Segmentation Using K-means Clustering Algorithm and Subtractive Clustering Algorithm," ScienceDirect Vol 54, pgs 764-771, https://www.sciencedirect.com/science/article/pii/S1877050915014143 (tautan berada di luar ibm.com).

11 Bagus Mulyawan et al, "Recommendation Product Based on Customer Categorization with K-Means Clustering Method," 2019 IOP Conf. Ser.: Mater. Sci. Eng. 508 012123 https://iopscience.iop.org/article/10.1088/1757-899X/508/1/012123/pdf#:~:text=The%20K%2DMeans%20algorithm%20is,group%20customer%20based%20on%20attributes. (tautan berada di luar ibm.com).

12 scikit-learn, https://github.com/scikit-learn/scikit-learn/blob/5491dc695/sklearn/cluster/_kmeans.py#L1193 (tautan berada di luar ibm.com).

13 "Demonstration of k-means assumptions," https://scikit-learn.org/stable/auto_examples/cluster/plot_kmeans_assumptions.html(tautan berada di luar ibm.com)