K-nearest neighbors atau knn adalah algoritma yang berfungsi untuk melakukan klasifikasi
suatu data berdasarkan data pembelajaran (train data sets), yang diambil dari k tetangga
terdekatnya (nearest neighbors). Dengan k merupakan banyaknya tetangga terdekat.
K-nearest neighbors melakukan klasifikasi dengan proyeksi data pembelajaran pada ruang
berdimensi banyak. Ruang ini dibagi menjadi bagian-bagian yang merepresentasikan kriteria
data pembelajaran. Setiap data pembelajaran direpresentasikan menjadi titik-titik c pada ruang
dimensi banyak.
Data baru yang diklasifikasi selanjutnya diproyeksikan pada ruang dimensi banyak yang telah
memuat titik-titik c data pembelajaran. Proses klasifikasi dilakukan dengan mencari
titik c terdekat dari c-baru (nearest neighbor). Teknik pencarian tetangga terdekat yang umum
dilakukan dengan menggunakan formula jarak euclidean. Berikut beberapa formula yang
digunakan dalam algoritma knn.
Euclidean Distance
Jarak Euclidean adalah formula untuk mencari jarak antara 2 titik dalam ruang dua
dimensi.
Hamming Distance
Jarak Hamming adalah cara mencari jarak antar 2 titik yang dihitung dengan panjang
vektor biner yang dibentuk oleh dua titik tersebut dalam block kode biner.
Manhattan Distance
Manhattan Distance atau Taxicab Geometri adalah formula untuk mencari
jarak d antar 2 vektor p,q pada ruang dimensi n.
Minkowski Distance
Minkowski distance adalah formula pengukuran antar 2 titik pada ruang vektor
normal yang merupakan hibridisasi yang menjeneralisasi euclidean distance dan
mahattan distance.
Teknik pencarian tetangga terdekat disesuaikan dengan dimensi data, proyeksi, dan kemudahan
implementasi oleh pengguna.
Contoh berikut diambil dari buku "Data Science Algorithms in a Week" yang ditulis
oleh Dávid Natingga.
Pada contoh ini, dilakukan klasifikasi suhu udara berdasarkan persepsi seseorang yang
bernama Marry. Adapun klasifikasi suhu udara terdiri dari 2 persepsi yaitu Panas dan Dingin.
Persepsi ini dapat diukur berdasarkan 2 variabel yaitu temperatur dalam derajat
celcius dan kecepatan angin dalam km/h. Diperoleh data berikut,
Temperatur Udara (ºC) Kecepatan Angin (km/jam) Klasifikasi atau Persepsi Marry
10 0 Dingin
25 0 Panas
15 5 Dingin
20 3 Panas
18 7 Dingin
20 10 Dingin
22 5 Panas
24 6 Panas
Untuk contoh ini terbentuk ruang dimensi 2, yang berisi 2 kriteria yaitu temperatur
udara dan kecepatan angin.
Pada proyeksi di atas sumbu vertikal adalah kecepatan angin, sumbu horizontal adalah
temperatur suhu, warna biru adalah dingin, dan warna merah adalah panas.
Dari proyeksi di atas, dapat dilakukan klasifikasi data baru. Misalnya, Bagaimana persepsi
Marry saat temperatur udara 16°C dan kecepatan angin 3 km/jam.
Catatan: Untuk pemilihan k lainnya, hasil klasifikasi ditentukan dengan frekuensi terbanyak.
Misalnya k = 3, dengan titik terdekat dingin, panas, dingin. Hasil klasifikasi data baru
tersebut adalah dingin.