Buku ini sedang dalam tahap tinjauan terbuka. Kami ingin umpan balik Anda untuk membuat buku ini lebih baik bagi. Anda dapat memberikan anotasi pada beberapa teks dengan memilihnya menggunakan kursor dan kemudian klik “Beri Anotasi” pada menu pop-up. Anda juga dapat melihat anotasi orang lain: klik tanda panah di sudut kanan atas halaman

7.2 Eksperimen Algoritma K-Modes

1. Memuat library yang diperlukan

Algoritma k-modes adalah salah satu metode clustering yang dirancang khusus untuk menangani data kategorikal. Di R, algoritma ini dapat diimplementasikan dengan menggunakan library Klar, yang menyediakan fungsi bawaan untuk k-modes. Selain itu, library MASS sering digunakan untuk mendukung manipulasi data atau keperluan lainnya dalam analisis clustering.

library(klaR)
library(MASS)

2. Persiapan Dataset

Package readr menyiapkan fungsi read_csv() untuk import data dari file CSV. Pada kasus ini digunakan data Daerah Aliran Sungai (DAS).

library (readr)
urlfile = "https://raw.githubusercontent.com/dedenistiawan/Dataset/main/Dataset%20DAS.csv"
data<-read_csv(url(urlfile))
Tabel 7.1: Data Daerah Aliran Sungai
PRODUKTIVITAS KEMIRINGAN LERENG TINGKAT EROSI MANAJEMEN LAHAN
Sangat Tinggi Datar Berat Baik
Sangat Tinggi Datar Sangat Berat Baik
Sangat Rendah Datar Sedang Buruk
Sangat Rendah Datar Sedang Buruk
Sangat Tinggi Datar Sedang Baik
Sangat Tinggi Datar Sedang Baik
Sangat Tinggi Datar Sedang Baik
Sangat Rendah Datar Sedang Buruk
Sangat Tinggi Datar Sedang Baik
Sangat Tinggi Datar Sedang Baik

3. Memeriksa Missing value

Untuk memeriksa keberadaan missing value dalam dataset, kita dapat menggunakan fungsi is.na() yang mengidentifikasi elemen dengan nilai yang hilang (NA). Dalam kasus ini, perintah colSums(is.na(data)) digunakan untuk menghitung jumlah nilai yang hilang pada setiap kolom dalam dataset. Fungsi is.na(data) menghasilkan matriks logika yang menunjukkan posisi nilai yang hilang, di mana nilai TRUE menandakan keberadaan missing value. Selanjutnya, colSums() menjumlahkan nilai TRUE tersebut untuk setiap kolom, sehingga memberikan informasi tentang jumlah nilai yang hilang per kolom. Dengan hasil ini, pengguna dapat dengan mudah mengidentifikasi kolom yang memerlukan penanganan lebih lanjut, seperti imputasi atau penghapusan data.

colSums(is.na(data))
#>     PRODUKTIVITAS KEMIRINGAN LERENG     TINGKAT EROSI   MANAJEMEN LAHAN 
#>                 0                 0                 0                 0

3. Menjalankan K-Modes

Proses diawali dengan menjalankan fungsi kmodes(), di mana dataset dibagi ke dalam 3 cluster dengan parameter iterasi maksimum sebesar 10 dan tanpa pembobotan (parameter weighted = FALSE). Hasil clustering disimpan dalam variabel cluster.results, yang mencakup informasi tentang mode dari setiap cluster dan label cluster untuk setiap baris data. Selanjutnya, hasil cluster tersebut ditambahkan sebagai kolom baru ke dataset asli menggunakan fungsi cbind(), menghasilkan data frame baru yang mencakup informasi label cluster untuk setiap data. Dengan demikian, dataset hasil clustering ini dapat digunakan untuk analisis lebih lanjut, seperti mengidentifikasi pola atau karakteristik di dalam setiap cluster.

kmodes_result <- kmodes(data , 3, iter.max = 10, weighted = FALSE )
cluster.output <- cbind(data ,kmodes_result$cluster)

4. Menyimpan Hasil Cluster

Fungsi write.csv() digunakan untuk mengekspor data frame cluster.output, yang berisi dataset asli beserta label cluster hasil algoritma k-modes, ke file bernama “kmodes clusters.csv”. Parameter row.names = TRUE memastikan bahwa nama baris dari data frame akan disertakan dalam file CSV yang dihasilkan. File ini disimpan di direktori kerja R saat ini dan dapat diakses menggunakan perangkat lunak spreadsheet seperti Microsoft Excel atau diimpor kembali ke R untuk analisis lebih lanjut.

write.csv(cluster.output, file = "kmodes clusters.csv", row.names = TRUE)