k nearest neighbor

K Nearest Neighbor (KNN): Pengertian, Cara Kerja dan Penerapannya

Salah satu dari beberapa algoritma klasifikasi (naive bayes, decision tree) yang digunakan dalam data mining adalah K Nearest Neighbor, umumnya dikenal sebagai KNN. Algoritma ini adalah metode pengklasifikasi dimana pembelajaran didasarkan pada “seberapa mirip” suatu data (vektor) dari yang lain.

Nah, pada artikel ini kita akan belajar lebih mendalam mengenai algoritma KNN dari defenisi, cara kerjanya, hingga sampai penerapannya.

Pengertian K-Nearest Neighbor (KNN)

K Nearest Neighbor (KNN) merupakan algoritma klasifikasi yang bekerja dengan mengambil sejumlah nilai K data terdekat (tetangganya) sebagai acuan untuk menentukan kelas dari data baru. KNN mengklasifikasikan data berdasarkan similarity atau kemiripan atau kedekatannya terhadap data lainnya.

Algoritma KNN ini bersifat lazy learning yang berarti tidak menggunakan titi data training untuk membuat model. Singkatnya pada algoritma KNN sangat minim ada fase training.

Tujuan dari algoritma ini adalah untuk mengklasifikasi objek baru berdasarkan atribut dan sample-sample dari data training.

Cara Kerja K-Nearest Neighbor (KNN)

Adapun alur cara kerja KNN sebagai berikut

cara kerja Knn
Sumber: ibm.com
  1. Tahap 1 : Tentukan jumlah tetangga terdekat (K) yang akan dipertimbangkan sebagai dasar klasifikasi.
  2. Tahap 2 : Hitung jarak antara data baru yang ditanyakan dengan seluruh sampel data pelatihan (data training).
  3. Tahap 3 : Urutkan seluruh jarak berdasarkan jarak minimum dan tetapkan tetangga sesuai dengan nilai K.
  4. Tahap 4 : Sesuaikan klasifikasi dari kategori Y dengan tetangga yang telah ditetapkan.
  5. Tahap 5 : Gunakan kelas dengan jumlah terbanyak sebagai dasar menentukan kelas dari data baru yang ditanyakan.

Perhitungan jarak ke tetangga terdekat (tahap 2) dapat dilakukan dengan menggunakan metode, adapun metode yang sering digunakan sebagai berikut.

Baca juga :   Clustering: Pengertian, Jenis dan Contoh penerapannya
Rumus Euclidean
Rumus Euclidean
  • Euclidean distance, formula untuk mencari jarak antara dua titik dalam ruang dua dimensi.
Rumus Manhattan
Rumus Manhattan
  • Manhattan distance, formula untuk mencari jarak antara dua vektor p, q pada ruang dimensi n.
Rumus Hamming
Rumus Hamming
  • Hamming distance, formula untuk mencari jarak dua titik yang dihitung dengan panjang vektor biner yang dibentuk oleh dua titik dalam block kode biner.
Rumus Minkowski
Rumus Minkowski
  • Minkowski distance, formula pengukuran antara dua titik pada ruang vektor normal yang merupakan hibridisasi yang menjeneralisasi euclidean distance dan mahattan oleh pengguna.

Cara Menentukan Nilai K Pada K-Nearest Neighbor

Nilai K pada KNN adalah jumlah tetangga terdekat yang digunakan oleh algoritma dalam proses klasifikasi maupun regresi. Nilai K ditetapkan dengan nilai ganjil untuk menghindari adanya kesamaan jarak yang dapat muncul dapa proses KNN dijalankan.

Menentukan nilai K
Sumber: fossguru.com

Adapun beberapa pertimbangan yang dapat digunakan untuk menentukan nilai K.

  • Jika bekerja pada dua kelas (class) atau kategori, gunakan nilai K ganjil untuk menghindari jumlah kelas yang sama pada saat perhitungan kelas K.
  • Nilai K yang sangat kecil (K=2 atau K=3) mengakibatkan hasil kurang akurat, terutama jika ada banyak outlier dalam data kita. Selain itu, penggunakan K kecil dapat mengarahkan kita pada model yang overift.

Contoh Penerapan K-Nearest Neighbor

  1. Pengenalan Pola : KNN dapat digunakan untuk mengidentifikasi pola. contoh mengidentifikasi pola dalam pembelian pelanggan.
  2. Peramalan pasar saham : KNN dapat memprediksi harga saham berdasarkan kinerja perusahaan dan data-data ekonomi.
  3. Preprocessing Data : KNN digunakan untuk proses yang disebut missing data imputation yang memperkirakan nilai-nilai yang hilang.
  4. Sistem rekomendasi : KNN dapat membantu menemukan pengguna (user) dengan karakteristik serupa dan dapat digunakan dalam sistem rekomendasi.
  5. Visi komputer : KNN digunakan untuk klasifikasi gambar, karena mampu mengelompokan titik data yang serupa.
Baca juga :   Weighted Product (WP): Pengertian, Cara Kerja, Rumus dan Penerapannya

Kelebihan K-Nearest Neighbor (KNN)

  • Sangat mudah diterapkan.
  • Sangat sederhana dan mudah dipahami.
  • Parameter yang diperlukan sedikit, hanya jumlah tetangga yang dipertimbangkan (K) dan metode perhitungan jaraknya.
  • Hasil pemodelan tidak linear, sehingga cocok untuk klasifikasi daya yang batasannya tidak linear.
  • Tidak memerlukan proses training dan proses pembangunan model, karena data baru lansung dikelaskan.
  • Dapat digunakan dalam proses jumlah kelas (class) yang berbeda-beda.
  • Dapat digunakan dalam proses klasifikasi maupun regresi.

Kekurangan K-Nearest Neighbor (KNN)

  • Perlu menentukan nilai K yang tepat.
  • Sangat sensitif pada data yang memiliki banyak noise (noisy data), banyak data yang hilang (missing data), dang pecilan (outliers).
  • Tidak cukup bagus diterapkan pada high dimensional data.
  • Membutuhkan waktu yang lama dalam pemprosesan jika data set (data training) sangat besar.
  • Biaya pembuatan dan perawatan yang mahal.

Kesimpulan

Pada pembelajaran kita di atas dapat disimpulkan bahwa Algoritma K Nearest Neighbor (KNN) adalah algoritma machine learning yang berfokus pada konsep sederhana tetapi efektif, yaitu dengan memanfaatkan tetangga terdekat untuk melakukan prediksi atau klasifikasi. KNN memiliki sejumlah kelebihan, seperti kemudahan implementasi, adaptabilitas tinggi dan ketidakbergantungan pada asumsi kompleks tentang data. Namun, perlu diperhatikan bahwa KNN juga memiliki keterbatasan, seperti sensitivitas terhadap outlier dan kebutuhan akan jumlah data latih yang mencukupi.

Dalam penggunaan praktisnya, KNN telah menemukan berbagai aplikasi di dunia nyata, termasuk dalam pengenalan pola wajah dan sistem rekomendasi. Meskipun sederhana, algoritma ini masih sangat relevan dalam konteks kecerdasan buatan, terutama dengan kemajuan teknologi yang terus berlanjut. KNN tetap menjadi alat yang berguna dan bermanfaat dalam analisis data dan pengambilan keputusan.

Artikel ini merupakan bagian dari seri artikel belajar Kecerdasan Buatan dan jika ada ide topik yang mau kami bahas silahkan komen di bawah ya…

Baca juga :   Entity Relationship Model (ERD): Pengertian dan Komponen