k-Nearest-Neighbor

Pahami Apa itu Algoritma k-Nearest Neighbor

Apakah kamu pernah menonton film di Netflix atau berbelanja produk di e-commerce? Jika pernah, pasti kamu pernah melihat rekomendasi film atau produk di situs tersebut. Rekomendasi tersebut dapat terjadi dikarenakan terdapat sebuah algoritma yang dijalankan, yaitu k-Nearest Neighbor. Algoritma k-Nearest Neighbor atau knn adalah salah satu algoritma dalam supervised learning dimana hasil dari instance yang baru diklasifikasikan berdasarkan mayoritas dari kategori k terdekat. Tujuan dari algoritma ini adalah untuk mengklasifikasikan objek baru berdasarkan atribut dan sampel-sampel dari training data.

Algoritma k-Nearest Neighbor ini menggunakan metode neighborhood classification sebagai nilai prediksi dari nilai instance yang baru. Knn dapat digunakan di metode classification dan juga regresi untuk mengatasi beberapa permasalahan. Namun, sebagian besar lebih banyak menggunakan knn dalam masalah classification di industri.  

Terdapat beberapa keuntungan dalam menggunakan algoritma ini. Berikut beberapa keuntungannya:

1. Simple & intuitive

Algoritma knn adalah algoritma yang mudah untuk dipahami oleh banyak orang serta mudah untuk diimplementasikan. Terbukti dengan banyaknya perusahaan yang mengimplementasikan algoritma ini.

2. Memory based approach

Algoritma knn ini mudah beradaptasi dengan training data yang baru. Ini merupakan keunggulan algoritma knn dengan yang lain karena setiap algoritma pastinya memerlukan training data. Dengan mudahnya algoritma ini beradaptasi, maka akan memudahkan developer untuk mengimplementasikan training data yang baru.

3. Variety of distance metrics

Adanya fleksibilitas dari user untuk menggunakan beberapa metode yang paling cocok untuk aplikasi mereka. Ada beberapa contoh metode yang paling umum digunakan, yaitu euclidean, minkowski, manhattan dan masih banyak lagi

Cara kerja knn

k-Nearest-Neighbor
Photo by analyticsvidhya.com/blog/2018/03/introduction-k-neighbours-algorithm-clustering

Seperti penjelasan di atas, algoritma knn digunakan untuk mengklasifikasikan data. Maka dari itu, apabila ingin mengetahui kelas dari sebuah object terlebih dahulu harus menentukan nilai k. Contohnya terdapat pada gambar di atas, knn akan digunakan untuk mengetahui kelas dari objek berbentuk bintang biru. Objek tersebut bisa termasuk ke dalam kelas objek berbentuk lingkaran merah ataupun kelas objek berbentuk kotak hijau. Nilai k bisa ditetapkan secara sembarang, dalam kasus ini, nilai k ditetapkan 3. Dikarenakan nilai k tiga, maka akan dibuat sebuah lingkaran dengan objek bintang biru sebagai pusatnya yang hanya mencakup tiga data saja(dikarenakan nilai k nya 3). Dapat dilihat bahwa tiga titik terdekat pada objek bintang biru semuanya adalah lingkaran berwarna merah. Dikarenakan hal tersebut maka dapat dikatakan bahwa objek bintang biru termasuk ke dalam kelas lingkaran merah. 

Menentukan nilai k yang optimal

k-Nearest-Neighbor
Photo by towardsdatascience.com/machine-learning-basics-with-the-k-nearest-neighbors-algorithm

Menetapkan nilai k pada algoritma knn adalah salah satu poin penting agar mendapatkan hasil yang maksimal. Apabila sembarang saja tanpa adanya uji lebih lanjut, maka algoritma knn akan menghasilkan output yang buruk. Sebenarnya tidak ada rumus pasti untuk menentukan nilai k yang optimal, namun dengan melakukan perulangan secara terus menerus dengan menggunakan nilai k yang berbeda dapat menjadi solusi untuk mencari nilai k. Namun ada beberapa hal yang perlu diperhatikan untuk menetapkan nilai k.

Semakin kecil nilai k maka hasil yang didapatkan akan kurang optimal. Saat menjalankan algoritma knn dengan menggunakan nilai k satu, maka prediksi yang dilakukan menjadi kurang stabil. Sebaliknya saat nilai k dinaikkan, maka prediksi menjadi lebih stabil. Maka dari itu, bisa disimpulkan bahwa semakin tinggi nilai k, maka semakin bagus prediksi yang dihasilkan. Namun, perlu adanya pengulangan satu per satu untuk mencapai nilai k yang optimal.


Nah, itulah segala hal mengenai algoritma k-Nearest Neighbor. Algoritma ini tidak bisa dipelajari dalam waktu singkat, perlu dedikasi dan latihan terus menerus untuk dapat menguasainya. Apakah kamu tertarik dengan topik ini? Jika ya, kamu bisa ikuti terus blog Coding Studio untuk menambah wawasanmu tentang data!