Algoritma k-tetangga terdekat (KNN) adalah pengklasifikasi pembelajaran non-parametrik dan terawasi, yang menggunakan kedekatan untuk membuat klasifikasi atau prediksi tentang pengelompokan titik data individu. Ini adalah salah satu klasifikasi dan regresi yang populer dan paling sederhana yang digunakan dalam machine learning saat ini.
Meskipun algoritma KNN dapat digunakan untuk masalah regresi atau klasifikasi, algoritma ini biasanya digunakan sebagai algoritma klasifikasi, dengan asumsi bahwa titik-titik yang serupa dapat ditemukan berdekatan satu sama lain.
Untuk masalah klasifikasi, label kelas ditetapkan berdasarkan suara terbanyak—yaitu label yang paling sering diwakili di sekitar titik data yang diberikan. Meskipun secara teknis dianggap sebagai “pemungutan suara pluralitas”, istilah “suara mayoritas” lebih umum digunakan dalam literatur. Perbedaan antara kedua terminologi ini adalah bahwa “pemungutan suara mayoritas” secara teknis membutuhkan mayoritas lebih dari 50%, yang terutama berlaku jika hanya ada dua kategori. Ketika Anda memiliki beberapa kelas—mis. empat kategori, Anda tidak membutuhkan 50% suara untuk membuat kesimpulan tentang sebuah kelas; Anda dapat memberikan label kelas dengan suara lebih besar dari 25%. University of Wisconsin-Madison merangkum ini dengan baik dengan contoh di sini.
Masalah regresi menggunakan konsep yang mirip dengan masalah klasifikasi, tetapi dalam kasus ini, rata-rata dari k tetangga terdekat diambil untuk membuat prediksi tentang klasifikasi. Perbedaan utama di sini adalah bahwa klasifikasi digunakan untuk nilai diskrit, sedangkan regresi digunakan untuk nilai kontinu. Namun, sebelum klasifikasi dapat dibuat, jarak harus ditentukan. Jarak Euclidean adalah yang paling umum digunakan, yang akan kita bahas lebih lanjut di bawah ini.
Perlu juga dicatat bahwa algoritma KNN juga merupakan bagian dari keluarga model “pembelajaran malas“, yang berarti bahwa algoritma ini hanya menyimpan kumpulan data pelatihan dan bukan menjalani tahap pelatihan. Ini juga berarti bahwa semua perhitungan terjadi ketika klasifikasi atau prediksi dibuat. Karena metode ini sangat bergantung pada memori untuk menyimpan semua data pelatihannya, metode ini juga disebut sebagai metode pembelajaran berbasis contoh atau berbasis memori.
Evelyn Fix dan Joseph Hodges dikreditkan dengan ide-ide awal seputar model KNN dalam makalah tahun 1951 ini sementara Thomas Cover memperluas konsep mereka dalam penelitiannya, “Klasifikasi Pola Tetangga Terdekat.” Meskipun tidak sepopuler dulu, algoritma ini masih menjadi salah satu algoritma pertama yang dipelajari dalam ilmu data karena kesederhanaan dan keakuratannya. Namun, seiring bertambahnya kumpulan data, KNN menjadi semakin tidak efisien, mengorbankan kinerja model secara keseluruhan. Ini sering digunakan untuk sistem rekomendasi sederhana, pengenalan pola, penggalian data, prediksi pasar keuangan, deteksi intrusi, dan lain-lain.
Singkatnya, tujuan dari algoritma k-tetangga terdekat adalah untuk mengidentifikasi tetangga terdekat dari titik kueri tertentu, sehingga kita dapat menetapkan label kelas ke titik itu. Untuk melakukan ini, KNN memiliki beberapa persyaratan:
Untuk menentukan titik data mana yang paling dekat dengan titik kueri yang diberikan, jarak antara titik kueri dan titik data lainnya perlu dihitung. Metrik jarak ini membantu membentuk batas keputusan, yang mempartisi titik kueri ke wilayah yang berbeda. Anda biasanya akan melihat batas-batas keputusan yang divisualisasikan dengan diagram Voronoi.
Meskipun ada beberapa ukuran jarak yang dapat Anda pilih, artikel ini hanya akan mencakup hal-hal berikut:
Jarak Euclidean (p=2): Ini adalah ukuran jarak yang paling umum digunakan, dan terbatas pada vektor bernilai riil. Dengan menggunakan rumus di bawah ini, ia mengukur garis lurus antara titik kueri dan titik lain yang diukur.
Jarak Manhattan (p = 1): Ini juga merupakan metrik jarak populer lainnya, yang mengukur nilai absolut antara dua titik. Jarak ini juga disebut sebagai jarak taksi atau jarak blok kota karena biasanya divisualisasikan dengan kisi-kisi, yang mengilustrasikan bagaimana seseorang dapat menavigasi dari satu alamat ke alamat lainnya melalui jalan-jalan kota.
Jarak Minkowski: Ukuran jarak ini adalah bentuk umum dari metrik jarak Euclidean dan Manhattan. Parameter, p, dalam rumus di bawah ini, memungkinkan pembuatan metrik jarak lainnya. Jarak Euclidean diwakili oleh rumus ini ketika p sama dengan dua, dan jarak Manhattan dilambangkan dengan p sama dengan satu.
Jarak Hamming: Teknik ini biasanya digunakan dengan vektor Boolean atau vektor string, untuk mengidentifikasi titik-titik di mana vektor tidak cocok. Akibatnya, ini juga disebut sebagai metrik tumpang tindih. Ini dapat direpresentasikan dengan rumus berikut:
Sebagai contoh, jika Anda memiliki senar berikut, jarak hamming akan menjadi 2 karena hanya dua nilainya yang berbeda.
Nilai k dalam algoritma k-NN menentukan berapa banyak tetangga yang akan diperiksa untuk menentukan klasifikasi titik kueri tertentu. Misalnya, jika k=1, instance akan ditetapkan ke kelas yang sama dengan tetangga terdekat tunggalnya.
Mendefinisikan k dapat menjadi tindakan penyeimbangan karena nilai yang berbeda dapat menyebabkan overfitting atau underfitting. Nilai k yang lebih rendah dapat memiliki varians tinggi, tetapi bias rendah, dan nilai k yang lebih besar dapat menyebabkan bias tinggi dan varians yang lebih rendah. Pilihan k akan sangat bergantung pada data input karena data dengan lebih banyak outlier atau noise kemungkinan akan berkinerja lebih baik dengan nilai k yang lebih tinggi. Secara keseluruhan, disarankan untuk memiliki angka ganjil untuk k untuk menghindari ikatan dalam klasifikasi, dan taktik validasi silang dapat membantu Anda memilih k yang optimal untuk kumpulan data Anda.
Untuk mempelajari lebih dalam, Anda dapat mempelajari lebih lanjut tentang algoritma k-NN dengan menggunakan Python dan scikit-learn (juga dikenal sebagai sklearn). Tutorial di Watson Studio kami membantu Anda memahami sintaks dasar dari perpustakaan ini, yang juga mengandung beberapa pustaka populer lainnya, seperti NumPy, pandas, dan Matplotlib. Kode berikut adalah contoh cara membuat dan memprediksi dengan model KNN:
Algoritma k-NN telah digunakan dalam berbagai aplikasi, sebagian besar dalam klasifikasi. Beberapa contoh penggunaan ini meliputi:
Sama seperti algoritma machine learning lainnya, k-NN memiliki kekuatan dan kelemahannya. Tergantung pada proyek dan aplikasi, itu mungkin atau mungkin bukan pilihan yang tepat.
IBM Granite adalah rangkaian model AI kami yang terbuka, berkinerja, dan tepercaya, yang dirancang untuk bisnis dan dioptimalkan untuk menskalakan aplikasi AI Anda. Jelajahi opsi bahasa, kode, deret waktu, dan batasan.
Kami menyurvei 2.000 organisasi tentang inisiatif AI mereka untuk mengetahui apa yang berhasil, apa yang tidak, dan cara Anda untuk maju.
Jelajahi pendekatan pembelajaran yang diawasi seperti mesin vendor pendukung dan pengklasifikasi probabilistik.
Belajar konsep dasar dan bangun keterampilan Anda dengan laboratorium praktis, kursus, proyek terpandu, uji coba, dan lainnya.
Pelajari cara memilih model dasar AI yang paling sesuai untuk contoh penggunaan Anda.
Latih, validasi, lakukan tuning, dan terapkan AI generatif, model dasar, dan kemampuan machine learning dengan IBM watsonx.ai, studio perusahaan generasi berikutnya untuk pembangun AI. Bangun aplikasi AI dalam waktu singkat, dengan sedikit data.
Gunakan AI di bisnis Anda dalam perpaduan antara keahlian AI terdepan di industri dari IBM dan portofolio solusi Anda.
Temukan kembali alur kerja dan operasi yang penting dengan menambahkan AI untuk memaksimalkan pengalaman, pengambilan keputusan secara real-time, dan nilai bisnis.