K-Nearest Neighbor (K-NN)
Pendahuluan
K-Nearest Neighbor (K-NN) adalah salah satu algoritma machine learning yang paling sederhana namun efektif
Terutama dalam masalah klasifikasi dan regresi.
K-NN termasuk ke dalam algoritma lazy learning.
Artinya algoritma ini tidak belajar dari data selama proses training, melainkan langsung melakukan prediksi saat diberikan data baru (instance baru).
🤔 Kenapa K-NN Dibuat ?
Tujuan dibuatnya K-NN adalah untuk menyelesaikan masalah klasifikasi atau regresi tanpa memerlukan model rumit atau proses pelatihan yang panjang.
Algoritma ini sangat berguna dalam kasus-kasus berikut:
- Klasifikasi berbasis kemiripan: Misalnya, apakah sebuah email termasuk spam atau tidak berdasarkan kemiripan dengan email sebelumnya.
- Rekomendasi sederhana: Seperti sistem rekomendasi film yang menyarankan film berdasarkan kesamaan dengan yang sudah ditonton.
- Kasus dengan data yang mudah divisualisasikan: Karena cara kerjanya intuitif dan berbasis jarak antar titik, K-NN sering digunakan untuk edukasi atau eksplorasi awal data.
💡 Bagaimana Cara Kerja K-Nearest Neighbor ?
Mari kita bayangkan sebuah peta dua dimensi berisi titik-titik data yang masing-masing mewakili suatu kategori, misalnya:
Titik merah = Kelas A
Titik biru = Kelas B
Lalu, kita ingin mengetahui ke mana sebuah titik baru (belum diketahui kelasnya) termasuk. Di sinilah K-NN digunakan.
Langkah-langkah K-NN:
1. Tentukan Nilai K
Nilai K adalah jumlah “tetangga terdekat” yang akan diperhitungkan. Contohnya, jika K = 3, maka kita akan melihat 3 data terdekat dari titik baru.
2. Hitung Jarak
Ukur jarak antara titik baru dan seluruh titik di data pelatihan. Umumnya menggunakan:
- Euclidean Distance (jarak lurus)
- Manhattan Distance
- atau metode lainnya tergantung konteks data
3. Pilih K Tetangga Terdekat
Ambil K data dengan jarak terdekat ke titik yang ingin diprediksi.
4. Voting untuk Klasifikasi / Rata-rata untuk Regresi
Untuk klasifikasi, titik baru diberi label berdasarkan mayoritas dari label K tetangga.
Untuk regresi, nilai yang diprediksi adalah rata-rata dari nilai K tetangga.
🔍 Contoh Sederhana ?
Misalnya kita ingin menentukan apakah seseorang akan membeli produk atau tidak.
Berdasarkan usia dan penghasilan.
Kita punya data historis dari pelanggan sebelumnya.
- Orang baru: usia 30 tahun, penghasilan 5 juta.
- Data historis: kombinasi usia dan penghasilan, masing-masing sudah diberi label “beli” atau “tidak beli”.
- Kita gunakan K = 3.
- Hitung jarak orang baru ke semua pelanggan lama.
- Lihat 3 pelanggan terdekat.
- Jika 2 dari 3 pelanggan tersebut membeli, maka prediksi: orang baru juga akan membeli.
🧠 Kelebihan K-NN
- ✅ Sederhana dan mudah diimplementasikan
- ✅ Tidak memerlukan pelatihan
- ✅ Efektif pada data dengan pola yang jelas
- ✅ Bisa digunakan untuk klasifikasi dan regresi
🧠 Kekurangan K-NN
- ⚠️ Lambat saat prediksi, karena harus menghitung jarak ke semua data
- ⚠️ Sensitif terhadap skala data — butuh normalisasi
- ⚠️ Sensitif terhadap noise dan data outlier
- ⚠️ Pemilihan nilai K sangat mempengaruhi hasil
🔁 Tips Menggunakan K-NN
- Gunakan normalisasi data agar fitur yang besar tidak mendominasi perhitungan jarak.
- Eksperimen dengan nilai K, biasanya dicoba beberapa nilai dan dipilih yang paling akurat.
- Gunakan K ganjil untuk menghindari hasil voting yang imbang (khusus klasifikasi).