Cara Menggunakan k-Nearest Neighbor
Konsep Dasar
k-Nearest Neighbor merupakan teknik klasifikasi terhadap objek berdasarkan kedekatan dengan “tetangga” . Misalkan, jika seseorang berada di lingkungan orang kaya, maka kemungkinan besar dia adalah orang kaya.
Tujuan metode ini untuk klasifikasi objek, apakah objek tersebut masuk dalam satu golongan tertentu atau golongan lainnya. Algoritma ini termasuk dalam kategori supervised learning dengan tujuan klasifikasi.
Huruf k menunjukkan banyaknya tetangga yang akan digunakan untuk pemodelan. Pada umumnya, nilai k yang digunakan adalah ganjil untuk menghindari total objek dengan jarak yang sama.
Jika k = 1 maka objek baru akan diprediksi berdasarkan 1 tetangga terdekatnya. Jika k = 2 maka objek baru akan diprediksi berdasarkan 2 tetangga terdekatnya. Jika k = 3 maka objek baru akan diprediksi berdasarkan 3 tetangga terdekatnya dst.
Baca Juga : Support Vector Machine
Ukuran Jarak
Ukuran kedekatan diukur menggunakan jarak seperti Euclidian, Manhattan dan Minkowski. Sebelum menghitung jarak, data perlu dilakukan normalisasi. Hal ini karena perbedaan satuan akan menyebabkan perbedaan nilai jarak. Penentuan objek baru tersebut masuk kelompok yang mana berdasarkan mayoritas (layaknya voting) tetangga-tetangga tersebut.
Algoritma k-NN dapat dijelaskan seperti di bawah ini.
- Tentukan nilai k (banyaknya tetangga terdekat)
- Bagi data menjadi data train dan data test
- Lakukan Normalisasi Data
- Hitung jarak setiap objek data test ke semua objek di data train
- Untuk setiap objek yang akan diprediksi, pilih K objek terdekat
- Lakukan voting untuk setiap objek yang akan diprediksi
- Beri label terhadap objek baru tersebut
Aplikasi
1. R Code
Dalam hal ini akan dicontohkan penerapan algoritma k-NN menggunakan software R. Dataset yang digunakan merupakan dataset yang disediakan oleh R sendiri yaitu iris. Data tersebut menunjukkan bahwa terdapat 3 kelompok (spesies) yaitu setosa, versicolor dan virginica. Tugas kita adalah memprediksi suatu objek baru termasuk setosa atau versicolor atau virginica.
Berikut ini merupakan penerapan algoritma k-NN menggunakan R. Report selengkapnya bisa dilihat di R-Pubs
Untuk menggunakan algoritma k-NN, data perlu dibagi menjadi dua bagian yaitu data train dan data test (80% data train dan 20% data test).
Hasil k-NN menggunakan k=3 menunjukkan bahwa tingkat akurasi model sebesar 96% dengan hanya ada 1 kesalahan pengklasifikasian.
2. Python Code
Sedangkan cara melakukan pemodelan k-NN via Python adalah