K-means berguna dan efisien dalam banyak konteks machine learning, tetapi memiliki beberapa kelemahan yang berbeda.
Kelebihan k-means
Relatif mudah diterapkan.
Penskalaan ke set data yang besar.
Selalu konvergensi.
Memungkinkan pemanasan posisi sentroid.
Beradaptasi dengan baik terhadap contoh baru.
Dapat digeneralisasi ke klaster yang terdiri dari berbagai bentuk dan ukuran, seperti klaster elips.
Menggeneralisasi k-means
Implementasi k-means secara langsung bisa mengalami kesulitan dengan klaster kepadatan dan ukuran yang berbeda. Sisi kiri Gambar 1 menunjukkan klaster kita lihat, sementara sisi kanan menunjukkan klaster yang diusulkan oleh k-means.
Untuk performa yang lebih baik pada klaster yang tidak seimbang seperti yang ditunjukkan pada Gambar 1, Anda dapat melakukan generalisasi, yaitu menyesuaikan, {i>k-means<i}. Gambar 2 menunjukkan tiga jenis yang dikelompokkan dengan dua generalisasi yang berbeda. {i>Dataset <i}pertama menunjukkan k-means tanpa generalisasi, sedangkan yang kedua dan ketiga memungkinkan klaster untuk lebarnya bervariasi.
Kursus ini tidak membahas cara menggeneralisasi k-means, tetapi mereka yang tertarik akan melihat Pengelompokan – campuran Gaussian k-means oleh Carlos Guestrin dari Carnegie Mellon University.
Kekurangan k-means
\(k\) harus dipilih secara manual.
Hasil bergantung pada nilai awal.
Untuk \(k\)rendah, Anda dapat memitigasi ketergantungan ini dengan menjalankan beberapa k-means waktu dengan nilai awal yang berbeda dan memilih hasil terbaik. Sebagai \(k\) peningkatan, Anda perlu penyelesaian k-means untuk memilih penempatan awal yang lebih baik centroid Untuk diskusi lengkap tentang penyemenan k-means, lihat "Perbandingan Studi Metode Inisialisasi Efisien untuk Pengelompokan K-means Algoritma", oleh M. Emre Celebi, Hassan A. Kingravi, dan Patricio A. Vela.
Kesulitan dalam mengelompokkan data dengan berbagai ukuran dan kepadatan tanpa generalisasi.
Kesulitan mengelompokkan pencilan.
Sentroid dapat ditarik oleh pencilan, atau pencilan mungkin mendapatkan gugusnya sendiri bukannya diabaikan. Pertimbangkan untuk menghapus atau memotong {i>outlier<i} sebelum {i>clustering <i}(pengklasteran).
Kesulitan menskalakan dengan jumlah dimensi.
Seiring bertambahnya jumlah dimensi dalam data, kesamaan berdasarkan jarak konvergensi ke nilai konstan di antara contoh yang diberikan. Mengurangi dimensialitas, baik dengan menggunakan PCA pada data fitur atau menggunakan pengelompokan spektral untuk mengubah pengelompokan algoritme.
Kutukan dimensialitas dan pengelompokan spektrum
Dalam ketiga plot ini, perhatikan bagaimana, seiring dengan meningkatnya dimensi, standar deviasi jarak antara contoh menyusut relatif terhadap jarak rata-rata antara contoh. Ini konvergensi berarti bahwa k-means kurang efektif dalam membedakan antara contoh seiring dengan meningkatnya dimensi data. Hal ini disebut sebagai kutukan dimensi.
Anda dapat menghindari penurunan performa ini dengan pengelompokan spektrum, yang menambahkan langkah-langkah pra-pengelompokan ke algoritma. Untuk melakukan spektrum {i>clustering <i}(pengelompokan):
- Mengurangi dimensi data fitur menggunakan PCA.
- Memproyeksikan semua titik data ke dalam subruang berdimensi lebih rendah.
- Kelompokkan data di subruang ini menggunakan algoritma yang Anda pilih.
Lihat Tutorial tentang Spektral Pengelompokan oleh Ulrike von Luxburg untuk mengetahui informasi lebih lanjut tentang spektrum {i>clustering <i}(pengklasteran).