Anda di halaman 1dari 15

MIFTAHUL WALID

FAKULTAS TEKNIK
UNIVERSITAS ISLAM MADURA
TUJUAN INTRUKSIONAL
• MAHASISWA DAPAT MENJELASKAN TENTANG PENGERTIAN K-NEAREST NEIGHBOR (K-NN)
• MAHASISWA DAPAT MENJELASKAN LANGKAH-LANGKAH DALAM PENGGUNAAN METODE K-NEAREST
NEIGHBOR (K-NN)
• MAHASISWA DAPAT MENJELASKAN KELEBIHAN DAN KEKURANGAN DARI METODE K-NEAREST NEIGHBOR
(K-NN)
• MAHASISWA MAMPU MENYELESAIKAN STUDI KASUS PEMILIHAN ALTERNATIVE TERBAIK MENGGUNAKAN
METODE K-NEAREST NEIGHBOR (K-NN)
Sumber : https://informatikalogi.com/algoritma-k-nn-k-
Apa itu K-NN..? nearest-neighbor/

• Algoritma K-Nearest Neighbor (K-NN) adalah sebuah metode klasifikasi terhadap sekumpulan
data berdasarkan pembelajaran data yang sudah terklasifikasikan sebelumya. Termasuk dalam
supervised learning, dimana hasil query instance yang baru diklasifikasikan berdasarkan
mayoritas kedekatan jarak dari kategori yang ada dalam K-NN.
• Ilustrasi K-NN
Kasus di atas menggambarkan ide dari algoritma k-Nearest Neighbours (kNN). Anda ingin mengambil sebuah
keputusan (kelas) antara datang atau tidak datang ke sebuah pertemuan. Untuk mendukung pengambilan
keputusan tersebut, Anda melihat mayoritas dari keputusan teman-teman Anda (instance lainnya). Teman-
teman tersebut Anda pilih berdasarkan kedekatannya dengan Anda. Ukuran kedekatan pertemanan ini bisa
bermacam-macam: tetangga, satu hobi, satu kelas, atau hal-hal lainnya. Ukuran-ukuran tersebut bisa juga
digunakan bersamaan, misalnya si A itu tetangga, satu hobi, dan satu kelas; sedangkan si B hanya satu kelas
saja
Gambar di samping menggambarkan ide dari algoritma k-Nearest
Neighbours (kNN). Anda ingin mengambil sebuah keputusan (kelas)
antara datang atau tidak datang ke sebuah pertemuan. Untuk
mendukung pengambilan keputusan tersebut, Anda melihat mayoritas
dari keputusan teman atau tetangga Anda (instance lainnya). Teman
atau tetangga tersebut Anda pilih berdasarkan kedekatannya dengan
Anda. Ukuran kedekatan pertemanan ini bisa bermacam-macam: satu
hobi, satu kelas, atau hal-hal lainnya. Ukuran-ukuran tersebut bisa juga
digunakan bersamaan, misalnya si A itu tetangga, satu hobi, dan satu Kedekatan dapat dianggap sebagai invers
kelas; sedangkan si B hanya satu kelas saja. jarak, alias berbanding terbalik dengan
jarak. Semakin kecil jarak antara dua
Dekat atau jauhnya tetangga biasanya dihitung berdasarkan Euclidean
instance, semakin besar “kedekatan”
Distance, atau dapat juga menggunakan rumus jarak yang lain, seperti
antara dua instance tersebut. Dengan
yang dijelaskan pada artikel Vector Space Model dan Pengukuran
demikian, k nearest neighbours dari
Jarak.
sebuah instance x didefinisikan sebagai k
instance yang memiliki jarak terkecil
(kedekatan terbesar, nearest) dengan x.
Tahapan Langkah Algoritma K-NN
Menentukan parameter k (jumlah tetangga paling dekat).
Menghitung kuadrat jarak eucliden objek terhadap data training yang diberikan.
Mengurutkan hasil no 2 secara ascending (berurutan dari nilai tinggi ke rendah)
Mengumpulkan kategori Y (Klasifikasi nearest neighbor berdasarkan nilai k)
Dengan menggunakan kategori nearest neighbor yang paling mayoritas maka
dapat dipredisikan kategori objek.
Kelebihan Algoritma K-NN
• Sangat nonlinear
• kNN merupakan salah satu algoritma (model) pembelajaran
mesin yang bersifat nonparametrik. Pembahasan mengenai
model parametrik dan model nonparametrik bisa menjadi
artikel sendiri, namun secara singkat, definisi model
nonparametrik adalah model yang tidak mengasumsikan apa-
apa mengenai distribusi instance di dalam dataset. Model
nonparametrik biasanya lebih sulit diinterpretasikan, namun
salah satu kelebihannya adalah garis keputusan kelas yang
dihasilkan model tersebut bisa jadi sangat fleksibel dan
nonlinear.
• Mudah dipahami dan diimplementasikan
• Dari paparan yang diberikan dan penjelasan cara menghitung
jarak dalam artikel ini, cukup jelas bahwa algoritma kNN mudah
dipahami dan juga mudah dimplementasikan. Untuk
mengklasifikasi instance x menggunakan kNN, kita cukup
mendefinisikan fungsi untuk menghitung jarak antar-instance,
menghitung jarak x dengan semua instance lainnya berdasarkan
fungsi tersebut, dan menentukan kelas x sebagai kelas yang
paling banyak muncul dalam k instance terdekat.
Kekurangan K-NN
• Perlu menunjukkan parameter K (jumlah tetangga terdekat)
• Tidak menangani nilai hilang (missing value) secara implisit
• Jika terdapat nilai hilang pada satu atau lebih variabel dari suatu instance, perhitungan jarak instance tersebut
dengan instance lainnya menjadi tidak terdefinisi. Bagaimana coba, menghitung jarak dalam ruang 3-dimensi
jika salah satu dimensi hilang? Karenanya, sebelum menerapkan kNN kerap dilakukan imputasi untuk mengisi
nilai-nilai hilang yang ada pada dataset. Contoh teknik imputasi yang paling umum adalah mengisi nilai hilang
pada suatu variabel dengan nilai rata-rata variabel tersebut (mean imputation).

• Sensitif terhadap data pencilan (outlier)


• Seperti yang telah dijelaskan Ali pada artikel sebelumnya, kNN bisa jadi sangat fleksibel jika k kecil. Fleksibilitas
ini mengakibatkan kNN cenderung sensitif terhadap data pencilan, khususnya pencilan yang terletak di
“tengah-tengah” kelas yang berbeda. Lebih jelasnya, perhatikan ilustrasi di bawah. Pada gambar kiri, seluruh
instance bisa diklasifikasikan dengan benar ke dalam kelas biru dan jingga. Tetapi, ketika ditambahkan instance
biru di antara instance jingga, beberapa instance jingga menjadi salah terklasifikasi.Perlu dipilih k yang tepat
untuk mengurangi dampak data pencilan dalam kNN.
• Rentan terhadap variabel yang non-informatif
• Meskipun kita telah menstandardisasi rentang variabel, kNN tetap tidak dapat mengetahui
variabel mana yang signifikan dalam klasifikasi dan mana yang tidak. Lihat contoh berikut:

• Pada ilustrasi di atas, klasifikasi sebetulnya bisa dilakukan menggunakan variabel a saja
(perhatikan garis vertikal yang memisahkan kedua kelas secara linear). Namun, kNN tidak
dapat mengetahui bahwa variabel b tidak informatif. Alhasil, dua instance kelas biru
terklasifikasi dengan salah, karena kedua instance tersebut dekat dengan instance kelas
jingga dalam dimensi b. Andaikan kita hanya menggunakan variabel a dan membuang
variabel b, semua instance akan terklasifikasi dengan tepat.Pemilihan variabel sebelum
menerapkan kNN dapat membantu menangani permasalahan di atas. Selain itu, kita juga bisa
memberi bobot pada variabel dalam perhitungan jarak antar-instance. Variabel yang kita
tahu noninformatif kita beri bobot yang kecil, misalnya:
• Rentan terhadap dimensionalitas yang tinggi
• Berbagai permasalahan yang timbul dari tingginya dimensionalitas (baca: banyaknya variabel)
menimpa sebagian besar algoritma pembelajaran mesin, dan kNN adalah salah satu
algoritma yang paling rentan terhadap tingginya dimensionalitas. Hal ini karena semakin
banyak dimensi, ruang yang bisa ditempati instance semakin besar, sehingga semakin besar
pula kemungkinan bahwa nearest neighbour dari suatu instance sebetulnya sama sekali tidak
“near“.
• Masalah tingginya dimensionalitas (terkadang) bisa diatasi dengan pemilihan variabel atau
rekayasa fitur, misalnya dengan PCA.
• Rentan terhadap perbedaan rentang variabel
• Dalam perhitungan jarak antar-instance, kNN
menganggap semua variabel setara atau sama
penting (lihat bagian penjumlahan pada rumus
perhitungan jarak di atas). Jika terdapat variabel p
yang memiliki rentang jauh lebih besar dibanding
variabel-variabel lainnya, maka perhitungan jarak
akan didominasi oleh p. Misalkan ada dua variabel, a
dan b, dengan rentang variabel a 0 sampai 1.000 dan
rentang variabel b 0 sampai 10. Kuadrat selisih dua
nilai variabel b tidak akan lebih dari 100, sedangkan
untuk variabel a kuadrat selisihnya bisa mencapai
1.000.000. Hal ini bisa mengecoh kNN sehingga kNN
menganggap a tidak membawa pengaruh dalam
perhitungan jarak karena rentangnya sangat besar
dibanding rentang b.Ilustrasinya diberikan di bawah
ini. Manakah yang merupakan nearest neighbour
dari instance x? Jika dilihat dari “kacamata”
komputer, nearest neighbour x bukanlah y,
melainkan z, Mengapa?
• Untuk mengatasi perbedaan rentang, biasanya
dilakukan preproses berupa standardisasi rentang
semua variabel sebelum menerapkan algoritma kNN.
Contohnya yaitu melalui operasi centre-scale atau
operasi min-max.
• Nilai komputasi yang tinggi.
• Untuk mengklasifikasi sebuah instance x, kNN harus menghitung jarak antara
x dengan semua instance lain dalam dataset yang kita miliki. Dengan kata lain,
kompleksitas waktu klasifikasi kNN berbanding lurus dengan jumlah instance
latih. Jika dataset yang kita miliki berukuran besar (terdiri dari banyak instance
dan/atau banyak variabel), proses ini bisa jadi sangat lambat. Bayangkan, jika
kita punya 10.000 instance dengan masing-masing 20 variabel dan kita ingin
mengklasifikasi 100 instance baru (instance uji), maka total operasi yang harus
dilakukan menjadi:(100 instance uji x 10.000 instance latih) x 20
variabel/instance x 2 operasi/variabel = 40 juta operasiBeberapa cara
pengindexan (K-D tree) dapat digunakan untuk mereduksi biaya komputasi.
Contoh Kasus
Diberikan data Training berua dua atribut Bad dan Good untuk
mengklasiikasikan sebuah data apakah tergolong Bad atau Good , berikut ini
adalah contoh datanya :

Kita diberikan data baru yang akan kita klasifikasikan, yaitu X = 3 dan Y = 5. Jadi
termasuk klasifikasi apa data baru ini ? Bad atau Good ?

Sumber : https://www.ketutrare.com/2018/11/algoritma-k-
nearest-neighbor-dan-contoh-soal.html
Langkah penyelesaian
Pertama, Kita tentukan parameter K. Misalnya kita buat jumlah
tertangga terdekat K = 3
Ke-dua, kita hitung jarak antara data baru dengan semua data
training. Kita menggunakan Euclidean Distance. Kita hitung
seperti pada table berikut :
Ke-tiga, kita urutkan jarak dari data baru dengan data training
dan menentukan tetangga terdekat berdasarkan jarak
minimum K. Dari kolom 4 (urutan jarak) kita mengurutkan dari
yang terdekat ke terjauh antara jarak data baru dengan data
training. ada 2 jarak yang sama (yaitu 4) pada data baris 2 dan
baris 6, sehingga memiliki urutan yang sama. Pada kolom 5
(Apakah termasuk 3-NN?) maksudnya adalah K-NN menjadi 3-
NN , karena nilai K ditentukan sama dengan 3.
Ke-empat, tentukan kategori dari tetangga terdekat. Kita
perhatikan baris 3, 4, dan 5 pada gambar sebelumnya (diatas).
Kategori Ya diambil jika nilai K<=3. Jadi baris 3, 4, dan 5
termasuk kategori Ya dan sisanya Tidak. Kategori ya untuk K-NN
pada kolom 6, mencakup baris 3,4, dan 5. Kita berikan kategori
berdasarkan tabel awal. baris 3 memiliki kategori Bad, dan 4,5
memiliki kategori Good
Ke-lima, gunakan kategori mayoritas yang sederhana dari tetangga yang terdekat tersebut sebagai nilai prediksi
data yang baru.

Data yang kita miliki pada baris 3, 4 dan 5 kita punya 2 kategori Good
dan 1 kategori Bad. Dari jumlah mayoritas (Good > Bad) tersebut kita
simpulkan bahwa data baru (X=3 dan Y=5) termasuk dalam kategori
Good.
Terima Kasih

Anda mungkin juga menyukai