Algoritma k tetangga terdekat

algoritme klasifikasi yang melabeli data sesuai dengan label terbanyak di antara k tetangga terdekatnya

Algoritma k tetangga terdekat (bahasa Inggris: k-nearest neighbour algorithm, disingkat k-NN) adalah sebuah metode untuk melakukan klasifikasi terhadap objek berdasarkan data pemelajaran yang jaraknya paling dekat dengan objek tersebut.

Data pemelajaran digambarkan ke ruang berdimensi banyak dengan tiap-tiap dimensi mewakili tiap ciri/fitur dari data. Klasifikasi data baru dilakukan dengan mencari label k tetangga terdekat. Label terbanyak yang muncul menjadi label data baru. Bila k = 1, data baru dilabeli dengan label tetangga terdekat. Jarak yang biasa dipakai adalah jarak Euklides.

Penjelasan

sunting
 
Contoh klasifikasi k-NN. Sampel uji (titik hijau) harus dilabeli antara biru dan merah. Jika k = 3 (lingkaran garis penuh), ia dilabeli warna merah karena ada dua merah yang lebih banyak daripada satu biru. Jika k = 5 (lingkaran garis putus-putus), ia dilabeli warna biru karena ada tiga biru yang lebih banyak daripada dua merah.

Pada fase pemelajaran, algoritme ini hanya melakukan penyimpanan vektor-vektor fitur dan klasifikasi dari data pemelajaran. Pada fase klasifikasi, fitur-fitur yang sama dihitung untuk data uji (yang klasifikasinya tidak diketahui). Jarak dari vektor yang baru ini terhadap seluruh vektor data pemelajaran dihitung dan diambil sejumlah k buah yang paling dekat. Titik yang baru diberi label berdasarkan label terbanyak dari titik-titik tersebut.

Nilai k yang terbaik untuk algoritme ini tergantung pada data. Secara umum, nilai k yang tinggi akan mengurangi efek derau dalam klasifikasi, tetapi membuat batasan antarlabel menjadi lebih kabur. Nilai k yang bagus dapat dipilih dengan optimasi parameter, misalnya dengan menggunakan validasi silang.

Ketepatan algoritme ini sangat dipengaruhi oleh ada atau tidaknya fitur-fitur yang tidak relevan atau jika bobot fitur tersebut tidak setara dengan relevansinya terhadap klasifikasi. Riset terhadap algoritme ini sebagian besar membahas bagaimana memilih dan memberi bobot terhadap fitur agar performa klasifikasi menjadi lebih baik.

Algoritme ini memiliki konsistensi yang kuat. Ketika jumlah data mendekati tak hingga, algoritme ini menjamin laju galat yang tidak lebih dari dua kali laju galat Bayes (laju galat minimum untuk distribusi data tertentu).

Jenis-jenis

sunting

Terdapat beberapa jenis algoritme pencarian tetangga terdekat:

  • pemindaian linear,
  • pohon kD,
  • pohon balltree,
  • pohon metrik, dan
  • Hash sensitif lokal (LSH).

Daftar pustaka

sunting
  • Dasarathy, Belur V., ed. (1991). Nearest Neighbor (NN) Norms: NN Pattern Classification Techniques. ISBN 978-0-8186-8930-7. 
  • Shakhnarovich, Gregory; Darrell, Trevor; Indyk, Piotr, ed. (2005). Nearest-Neighbor Methods in Learning and Vision. MIT Press. ISBN 978-0-262-19547-8.