K-Modes dikembangkan oleh Leonard Kaufman dan Peter J. Rousseeuw sekitar tahun 1987, diperkenalkan pertama kali oleh Huang pada tahun 1997.
Algoritma K-Meodes sama seperti algoritma K-Means yaitu salah satu teknik dalam data mining untuk mengelompokkan (clustering) data kedalam beberapa kelompok berdasarkan jarak, kriteria, kondisi, atau karakteristik. (Buulolo, 2020)
Perbedaan antara keduanya adalah algoritma K-Means yang terbatas pada penggunaan data bertipe numerik karena pengelompokannya dengan menghitung rata-rata (mean) dari suatu data dengan data yang lain. Sedangkan adanya algoritma K-Modes bertujuan untuk memperbaiki keterbatasan pada algoritma K-Means dengan cara dimodifikasi dari perhitungan rata-rata (mean) menjadi nilai yang sering muncul (modus).
Algotirma K-Modes merupakan pengembangan dari algoritma K-Means untuk mengelompokkan data kategorik (nominal dan ordinal) dan memiliki kelebihan untuk mengatasi kelemahan algoritma K-Means yang sensitif terhadap data noise atau data outlier. Jollyta, Deni, dkk dalam Furqon, dkk., 2015 mengemukakan kelebihan lainnya yaitu hasil proses clustering tidak bergantung pada urutan masuk dataset.
Algoritma K-Modes memiliki beberapa tahapan sebagai berikut :
Menyiapkan sampel dari dataset yang dipilih.
Menentukan jumlah klaster yang akan dibentuk pada r data. Banyaknya klaster tidak boleh lebih dari banyaknya data (k<r) nilai k = 2, 3, 4, 5, …, 8 atau yang lainnya.
Menentukan centroid (pusat klaster) secara acak dari masing-masing klaster.
Menghitung jarak tiap data (objek) terhadap semua centroid.
Mengelompokkan objek berdasarkan jarak terdekat ke centroid.
Memperbarui centroid masing-masing klaster berdasarkan modus dari setiap variable anggota klaster yang terbentuk.
Menghitung ulang jarak setiap data (objek) terhadap centroid baru menggunakan ukuran ketidaksamaan sederhana seperti langkah ke-3.
Apabila masih ada objek yang berpindah klaster, maka ulangi langkah ke-6 sampai ke-8 hingga tidak ada objek yang berpindah klaster.
Pada eksperimen ini algoritma K-Modes akan digunakan untuk mengetahui
Untuk menjalankan algortima K-Modes dibutuhkan library MASS dan library KlaR
library(MASS)
library(klaR)
Package readxl menyiapkan fungsi read_excel() untuk import data dari file XLS. Pada kasus ini digunakan data Golf.
library (readxl)
Data <- read_excel("~/DATA MINING/R Project/Algoritma-K-Modes/Golf.xls", sheet = 2)
Setelah input data berhasil dilakukan, langkah selanjutnya adalah panggil data supaya data yang sudah diinput dapat ditampilkan.
Data
Karena data Golf yang sudah diinput sebelumnya terdapat variabel yang berisi data numerik, yaitu pada variabel No, maka kita hapus terlebih dahulu kolom variabel tersebut karena hanya dibutuhkan data kategorik saja pada pengoperasian algoritma K-Modes.
Data1 = Data[-1]
Setelah itu, panggil kembali data untuk mengecek apakah kolom variabel No sudah berhasil dihapus atau belum.
Data1
Karena pada Algoritma K-Modes tidak dibutuhkan label, sehingga kolom pada variabel Play juga perlu dihapus.
Data_Golf = Data1[-5]
Setelah itu panggil data kembali untuk melihat apakah kolom variabel Play yang merupakan label sudah terhapus dari data.
Data_Golf
Langkah selanjutnya adalah memeriksa missing value.
colSums(is.na(Data_Golf))
## Outlook Temperature Humidity Windy
## 0 0 0 0
Diketahui hasil bahwa tidak ada data yang kosong pada setiap variabelnya.
Setelah data berhasil diimport dan siap untuk dioperasikan, jalankan algoritma K-Modes
cluster.results <-kmodes(Data_Golf, 3, iter.max = 14, weighted = FALSE )
cluster.output <- cbind(Data_Golf, cluster.results$cluster)
Langkah terakhir yaitu memunculkan hasil akhir dari operasi algoritma K-Modes. yang sudah dijalankan.
head(cluster.output, n = 14)