đď¸ K-Nearest Neighbors (KNN)
"Kamu adalah rata-rata dari 5 teman terdekatmu" â algoritma paling intuitif, tanpa fase training.
đ 1. Konsep: Belajar dari Tetangga
Untuk mengklasifikasikan titik baru: cari k titik terdekat di data
training, lalu voting mayoritas.
Contoh (k=3):
o
o ⢠â titik baru: 3 tetangga terdekat = 2Ăo, 1Ăx
x â voting: o menang â titik baru = kelas o
Algoritma:
1. Untuk titik baru x: hitung jarak ke SEMUA titik training
2. Ambil k terdekat
3. Voting mayoritas â label x
(untuk regresi: rata-rata nilai k terdekat)
Karakter khas:
⢠"Lazy learner" â TIDAK ada fase training; semua komputasi saat prediksi
⢠Bisa membentuk boundary SEMANGAT (non-linear)
⢠SANGAT bergantung pada skala fitur â scaling wajib!
đ 2. Jarak & Memilih k
| Jarak | Rumus | Karakter |
| Euclidean | â(ÎŁ(xᾢ-yᾢ)²) | Paling umum; sensitif diagonal |
| Manhattan | Σ|xᾢ-yᾢ| | "Jalan kota"; lebih toleran |
| Cosine | 1 - cos(θ) | Arah vektor; populer di teks (bab 17) |
Efek nilai k:
k kecil (1,3) â boundary bergerigi, fleksibel, RAPIH di train
â tapi rapuh terhadap noise (OVERFITTING)
k besar (21+) â boundary halus, toleran noise
â tapi bisa "kabur" di area sempit (UNDERFITTING)
Aturan praktis: k ganjil (anti-seri), mulai dari ân, lalu tuning.
đ 4. Contoh: k=1 vs k=11 pada Data Moons
k=1 menghafal setiap titik (termasuk noise) â overfitting.
k besar menghaluskan boundary. Lihat perbedaannya:
â ď¸ KNN lambat saat prediksi (hitung jarak ke semua data).
Untuk data besar, praktisi memakai indeks: KD-tree, ball tree, atau
approximate nearest neighbor (HNSW).