5  Imputasi Berbobot dengan K-Tetangga Terdekat (WKNNI)

Metode Weighted KNN memilih instans dengan nilai yang serupa (dalam hal jarak) terhadap instans yang tidak lengkap, sehingga dapat melakukan imputasi sebagaimana yang dilakukan KNNI. Metode ini merupakan pengembangan dari metode KNNI (K-Nearest Neighbour Imputation) standar. KNNI Standar. Biasanya mengambil nilai rata-rata sederhana atau nilai yang paling sering muncul (modus) dari \(K\) tetangga terdekat untuk mengisi data yang hilang. WKNNI tidak memperlakukan semua tetangga sama rata. Metode ini memberikan bobot yang berbeda. Tetangga yang nilainya sangat mirip (jaraknya dekat) dengan data yang hilang akan memiliki pengaruh (bobot) lebih besar dibandingkan tetangga yang jaraknya jauh.Namun, nilai estimasi kini memperhitungkan perbedaan jarak ke tetangga-tetangga tersebut, dengan menggunakan rata-rata tertimbang atau nilai yang paling sering muncul berdasarkan ukuran kesamaan. Ukuran kesamaan \(s_i(y_j)\) antara dua contoh \(y_i\) dan \(y_j\) didefinisikan oleh jarak Euclidean yang dihitung berdasarkan atribut-atribut yang teramati pada \(y_i\).

Selanjutnya kita mendefinisikan ukuran tersebut sebagai berikut:

\[1/s_i = \sum_{h_i \in O_i \cap O_j} (y_{ih} - y_{jh})^2, \quad \quad (1) \]

di mana \(O_i = \{h | \text{komponen ke-}h \text{ dari } y_i \text{ teramati}\}\).

Entri yang hilang \(y_{ih}\) diestimasi sebagai rata-rata yang diberi bobot oleh ukuran kesamaan:

\[\hat{y}_{ih} = \frac{\sum_{j \in I_{Kih}} s_i(y_j)y_{jh}}{\sum_{j \in I_{Kih}} s_i(y_j)}, \quad \quad (2)\]

di mana \(I_{Kih}\) adalah himpunan indeks contoh KNN dari contoh ke-\(i\), dan jika \(y_{jh}\) hilang, atribut ke-\(j\) dikecualikan dari \(I_{Kih}\). Perlu dicatat bahwa KNNI tidak memiliki kriteria teoretis untuk memilih nilai K terbaik dan nilai K harus ditentukan secara empiris.

Ini adalah Rata-rata Tertimbang (Weighted Average).

5.0.1 Penentuan parameter K

Tidak ada rumus teoritis baku untuk menentukan berapa jumlah tetangga terbaik (\(K\)). * Nilai \(K\) harus ditentukan secara empiris, artinya peneliti harus mencoba-coba nilai \(K\) yang berbeda (misalnya 3, 5, 7) dan melihat mana yang memberikan hasil akurasi terbaik untuk dataset tersebut. Praktisi biasanya mencoba beberapa nilai (misal \(K=3\) sampai \(K=15\)) dan melihat mana yang memberikan tingkat kesalahan (error) terkecil melalui uji coba (seperti cross-validation).

Contoh

ID Luas (\(x\)) Harga Sewa (\(y\))
\(y_1\) 20 2.0 Juta
\(y_2\) 25 2.4 Juta
\(y_3\) 35 3.5 Juta
\(y_4\) 40 4.2 Juta
\(y_5\) 50 5.1 Juta
\(y_6\) 60 6.5 Juta
\(y_7\) 30 ?

Data Target (\(y_i\)): Luas (\(x_i\)) = 30 Harga Sewa (\(\hat{y}_{ih}\)) = ? (Hilang)


5.0.2 Langkah 1: Hitung Jarak dan Kemiripan (\(s_i\))

Gunakan rumus (1) \(1/s_i = (x_i - x_j)^2\).

Kita hitung untuk semua 6 data:

Tetangga Selisih (\(x_i - x_j\)) Kuadrat (\(1/s_i\)) Kemiripan (\(s_i = 1/\text{Kuadrat}\))
\(y_1\) \(30 - 20 = 10\) 100 0.010
\(y_2\) \(30 - 25 = 5\) 25 0.040
\(y_3\) \(30 - 35 = -5\) 25 0.040
\(y_4\) \(30 - 40 = -10\) 100 0.010
\(y_5\) \(30 - 50 = -20\) 400 0.0025
\(y_6\) \(30 - 60 = -30\) 900 0.0011

5.0.3 Langkah 2: Hitung Estimasi Menggunakan Weighted Average

Kita gunakan rumus (2): kali setiap Harga Sewa (\(y_j\)) dengan Kemiripan (\(s_i\)), lalu bagi dengan total Kemiripan.

A. Pembilang (\(\sum s_i \cdot y_{jh}\)):

  • \(y_1: 0.010 \times 2.0 = 0.020\)
  • \(y_2: 0.040 \times 2.4 = 0.096\)
  • \(y_3: 0.040 \times 3.5 = 0.140\)
  • \(y_4: 0.010 \times 4.2 = 0.042\)
  • \(y_5: 0.0025 \times 5.1 = 0.01275\)
  • \(y_6: 0.0011 \times 6.5 = 0.00715\)

Total Pembilang:

\[0.020 + 0.096 + 0.140 + 0.042 + 0.01275 + 0.00715 = 0.3179\]


B. Penyebut

(\(\sum s_i\)): \(0.010 + 0.040 + 0.040 + 0.010 + 0.0025 + 0.0011 = \mathbf{0.1036}\)


5.0.4 Hasil Akhir

\[\hat{y} = \frac{0.3179}{0.1036} \approx \mathbf{3.068}\]

6 Data hilang pada data klasifikasi

Jika data yang hilang berada pada fitur (atribut) tetapi label kelasnya sudah diketahui, metode Weighted KNN tetap bisa digunakan untuk mengisi kekosongan tersebut.

Dalam konteks ini, label kelas justru menjadi informasi tambahan yang sangat berharga untuk membuat estimasi yang lebih akurat. Logikanya: titik yang memiliki kelas yang sama biasanya memiliki karakteristik fitur yang serupa.


6.0.1 Contoh

Kita punya data pelamar kerja dengan fitur Pengalaman (Tahun), Skor Tes, dan Status (Kelas).

ID Pengalaman (\(x_1\)) Skor Tes (\(x_2\)) Kelas
\(y_1\) 2 70 0 (Gagal)
\(y_2\) 3 75 0 (Gagal)
\(y_3\) 5 85 1 (Lulus)
\(y_4\) 6 88 1 (Lulus)
\(y_5\) 1 65 0 (Gagal)
\(y_6\) 7 92 1 (Lulus)
\(y_7\) 5.5 ? 1 (Lulus)

Data Target (\(y_i\)):

Pengalaman = 5.5 Tahun

Skor Tes = ? (Hilang)

Kelas = 1 (Lulus)


6.0.2 Langkah 1: Hitung Jarak & Kemiripan (\(s_i\))

Karena kita hanya punya satu fitur yang lengkap (Pengalaman), kita hitung kemiripan berdasarkan fitur tersebut menggunakan rumus \(1/s_i = (x_{i1} - x_{j1})^2\).

Tetangga Selisih (\(5.5 - x_{j1}\)) Kuadrat (\(1/s_i\)) Kemiripan (\(s_i\))
\(y_1\) \(5.5 - 2 = 3.5\) 12.25 0.081
\(y_2\) \(5.5 - 3 = 2.5\) 6.25 0.160
\(y_3\) \(5.5 - 5 = 0.5\) 0.25 4.000
\(y_4\) \(5.5 - 6 = -0.5\) 0.25 4.000
\(y_5\) \(5.5 - 1 = 4.5\) 20.25 0.049
\(y_6\) \(5.5 - 7 = -1.5\) 2.25 0.444

6.0.3 Langkah 2: Strategi “Same-Class Weighting”

Karena kita tahu data target berasal dari Kelas 1, kita memiliki dua pilihan dalam implementasi Weighted KNN:

  1. Mengabaikan Kelas: Menggunakan semua tetangga (seperti contoh sebelumnya).
  2. Filter Berdasarkan Kelas: Hanya menggunakan tetangga yang memiliki kelas yang sama (Kelas 1) karena diasumsikan perilaku fiturnya lebih relevan.

Jika kita menggunakan opsi 2 (hanya tetangga dari Kelas 1: \(y_3, y_4, y_6\)) sesuai prinsip kedekatan karakteristik dalam klasifikasi.


6.0.4 Langkah 3: Hitung Estimasi (Hanya Kelas 1)

A. Pembilang (\(\sum s_i \cdot \text{Skor}_j\)):

  • \(y_3: 4.000 \times 85 = 340\)
  • \(y_4: 4.000 \times 88 = 352\)
  • \(y_6: 0.444 \times 92 = 40.848\)

Total Pembilang:

\[340 + 352 + 40.848 = 732.848\]

B. Penyebut (\(\sum s_i\)): \(4.000 + 4.000 + 0.444 = \mathbf{8.444}\)

C. Hasil Akhir: \[\hat{y} = \frac{732.848}{8.444} \approx \mathbf{86.79}\]


Nilai Skor Tes yang hilang diestimasi sebesar 86.79.

Data target berada di Kelas 1 (Lulus). Pengalamannya (5.5) berada di antara \(y_3\) (Pengalaman 5, Skor 85) dan \(y_4\) (Pengalaman 6, Skor 88). Karena jaraknya ke \(y_3\) dan \(y_4\) sama dekatnya, hasilnya berada hampir tepat di tengah-tengah nilai skor mereka.

Jika kita ingin tetap menyertakan tetangga dari kelas yang berbeda, biasanya bobot mereka (\(s_i\)) akan dikalikan dengan sebuah konstanta penalti (misal 0.5) agar pengaruhnya tidak sebesar tetangga yang sekelas.

6.1 Memilih K

https://ieeexplore.ieee.org/document/10748027

https://www.nature.com/articles/s41598-022-10358-x

https://ijsret.com/wp-content/uploads/2024/11/IJSRET_V10_issue6_525.pdf

https://openai.com/index/openai-to-acquire-neptune/?utm_source=neptune-website-redirect

https://www.linkedin.com/pulse/choosing-right-k-knn-practical-guide-debasish-deb-1ydwf/