Algoritma Fuzzy k-NN (k-Nearest Neighbors) 4


Algoritma Fuzzy k-NN (k-Nearest Neighbors) adalah salah satu algoritma yang digunakan untuk pengambilan keputusan. Contoh yang dibahas kali ini adalah menentukan kelompok hasil jual tipe sepeda motor baru berdasarkan kelompok data yang sudah ada.
Secara singkat, algoritma ini merupakan penggabungan dari Algoritma Fuzzy Logic dan Algoritma k-NN (k-Nearest Neighbors) yang sudah dijelaskan sebelumnya. Nilai hasil akan dikonversi menjadi beberapa nilai biner, untuk kemudian dicari pembobotannya menggunakan teknik Fuzzy. Sehingga setelah menemukan titik tetangga terbaik, akan dilakukan perhitungan bobot untuk menemukan jawaban akhir.



Diasumsikan ada 4 tipe motor yang sudah diketahui datanya, yaitu Motor A,B,C,D
Masing-masing tipe motor memiliki kriteria, yaitu harga, jarak tempuh per liter, cc, dan memiliki hasil jual yaitu Laris / Tidak Laris
Diasumsikan data dari 4 tipe motor tersebut adalah sebagai berikut:

Motor Harga Jarak tempuh per liter cc hasil jual
Motor A 10.000.000 35 110 Laris
Motor B 12.000.000 45 125 Laris
Motor C 11.000.000 40 150 Tidak Laris
Motor D 14.000.000 37.5 125 Tidak Laris

Contoh data awal adalah sebagai berikut:
Untuk kriteria hasil jual:
Nilai Laris dilambangkan dengan angka 1
Nilai Tidak Laris dilambangkan dengan angka 2

Selanjutnya ada 4 buah motor lagi, yaitu E,F,G,H, yang baru akan diluncurkan, sehingga tidak diketahui hasil jualnya
Maka tentukan data-data ini nantinya akan termasuk dalam kelompok hasil jual Laris / Tidak Laris
Diasumsikan data awalnya adalah sebagai berikut:

Motor Harga Jarak tempuh per liter cc
Motor E 13.000.000 45 125
Motor G 12.000.000 47 110
Motor F 10.500.000 43 110
Motor H 13.500.000 35 125

Contoh data yang baru adalah sebagai berikut:



Sebelum masuk kedalam langkah-langkah pembahasan algoritma, ada beberapa konstanta atau parameter yang harus diketahui, yaitu:
* Tentukan parameter k, yaitu banyak jumlah titik tetangga yang diperhitungkan
Karena ada 4 data pada contoh awal, maka nilai K adalah 1 / 2 / 3 / 4
Diasumsikan dalam kasus ini, nilai K adalah 3, brarti hanya 3 titik tetangga terdekat yang diperhitungkan dalam setiap perhitungan


Langkah-langkah penggunaan algoritma ini adalah

* Lakukan perhitungan menggunakan metode Fuzzy k-NN (k-Nearest Neighbors)
Penjelasan tentang fungsi ini akan dijelaskan pada perhitungan dibawah ini (poin 1 – 3)

Memasuki perhitungan pada fungsi FuzzyKNN

1. Tentukan faktor skala dalam pembobotan fuzzy
Dalam kasus ini bernilai 2 karena hanya ada 2 nilai hasil, yaitu Laris dan Tidak Laris

2. Lakukan konversi nilai hasil contoh data menjadi 2 nilai biner
Untuk hasil jual Laris, maka akan dikonversi menjadi 1 0
Untuk hasil jual Tidak Laris, maka akan dikonversi menjadi 0 1

3. Lakukan perhitungan pada masing-masing data baru (poin 3a – 3g)

3a. Hitung jarak dari data baru pada masing-masing data contoh
Perhitungan jarak menggunakan rumus Euclidean, yaitu akar dari (jumlah dari (kuadrat dari (dataBaru – contohData)))
Untuk efisiensi, proses akar memang tidak dilakukan agar tidak perlu lagi mengkuadratkan pada proses selanjutnya

3b. Lakukan pengurutan jarak dari yang paling dekat ke jarak yang paling jauh

3c. Contoh data terpilih adalah contoh data dengan jarak yang paling minimal sebanyak parameter k

3d. Lakukan perhitungan bobot menggunakan metode fuzzy
Normalnya, nilai bobot dihitung dengan menggunakan rumus:
bobot = jarak(idxContohDataTerpilih).^(-2/(m-1));
Tetapi karena nilai jarak diatas tidak dilakukan proses akar,
Maka nilai bobotnya dihitung dengan rumus:
bobot = sqrt(jarak(idxContohDataTerpilih)).^(-2/(m-1));
Dengan menghilangkan proses akar dan kuadrat yang terjadi bersamaan,
maka bobot dapat dihitung dengan rumus:
bobot = jarak(idxContohDataTerpilih).^(-1/(m-1));

3e. Jika terdapat nilai bobot yang mendekati tak terhingga (infinity),
maka nilai bobot ini akan dikembalikan menjadi angka 1

3f. Lakukan perkalian nilai bobot dengan 2 nilai biner hasil konversi dari nilai hasil pada contoh data
Kemudian lakukan normalisasi dengan cara membagi bobot tersebut dengan semua jumlah bobot yang ada

3g. Tentukan nilai bobot yang paling tinggi,
Kemudian catat indeks bobot tersebut sebagai jawaban akhir

4. Lakukan konversi nilai hasil kembali seperti semula
Jika nlai hasil adalah 1, maka termasuk dalam kelompok hasil jual Laris
Jika nlai hasil adalah 2, maka termasuk dalam kelompok hasil jual Tidak Laris


Hasil akhir adalah:


Contoh modul / source code menggunakan Matlab dapat didownload disini:



Jika membutuhkan jasa kami dalam pembuatan program, keterangan selanjutnya dapat dilihat di Fasilitas dan Harga
Jika ada yang kurang paham dengan langkah-langkah algoritma diatas, silahkan berikan komentar Anda.
Selamat mencoba.


Tinggalkan sebuah komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

4 pemikiran di “Algoritma Fuzzy k-NN (k-Nearest Neighbors)

  • Adi Sunardy

    Hi,

    Saya sedang mengerjakan thesis dan menggunakan algoritma k-NN. Thesis saya tentang indoor positioning menggunakan BLE. Saya menggunakan python untuk komputansi nya. Sebagai pembanding akurasinya, saya hendak menggunakan algoritma fuzzy k-NN.

    Kendala saya adalah, saya belum sepenuhnya memahami secara detail algoritma fuzzy k-NN ini. Jurnal-jurnal dan paper-paper yang saya download belum ada yang memberikan informasi yang saya perlukan.

    Saya mempelajari algoritma fuzzy k-NN pada postingan ini, dan mencoba memahami logika yang disampaikan melalui code Matlab di atas. Namun masih ada beberapa pertanyaan yang masih perlu jawaban.

    Apakah saudara dapat membantu saya? Mungkin bisa masuk hitungan jasa bimbingan skripsi/thesis? Saya hanya butuh bantuan memahami algoritma dan contoh implementasi fuzzy k-nn ini untuk multi class (6 kelas).Berapakah biayanya?

    Thanks.