Bagian 6

Hasil & Pembahasan

Seluruh angka pada halaman ini dibaca langsung dari CSV eksperimen terbaru — akan berubah otomatis begitu scripts/jalankan_*.py dijalankan ulang.

6.1 Metodologi Evaluasi

Seluruh metrik rekomendasi memakai leave-one-out dengan full ranking atas 70 item — bukan negative sampling. Satu interaksi per pengguna disisihkan sebagai target, lalu model mengurutkan seluruh 70 destinasi (dikurangi yang sudah pernah diinteraksi); posisi target pada urutan itulah yang dinilai. Angka dilaporkan rata-rata 3 seed acak (42, 43, 44) kecuali dinyatakan lain.

Pilihan ini konsekuen terhadap satu batas struktural yang perlu ditegaskan sejak awal: dengan tepat satu item relevan per pengguna, Precision@10 secara matematis tidak dapat melampaui 0,1 — berapa pun bagusnya model.

\mathrm{Precision@10}_{maks} = \frac{|\{\text{target}\} \cap \text{Top-10}|}{10} \le \frac{1}{10} = 0{,}1

Target proposal Precision@10 ≥ 0,70 diasumsikan dari protokol evaluasi yang lebih longgar (mis. negative sampling dengan puluhan kandidat negatif, di mana Precision@K tidak dibatasi secara struktural seperti ini). Di bawah full-ranking yang jujur, nDCG@10 menjadi metrik utama yang dilaporkan pada seluruh halaman ini — pembahasan lebih lanjut di Kesimpulan.

6.2 Rekomendasi: CBF, NeuMF, dan Cascade

6.2.1 Perbandingan Seluruh Metode

nDCG@10, rata-rata 3 seed, diurutkan dari yang terbaik:

6.2.2 Kontribusi Fitur Citra (Ablation α)

α = 1 berarti atribut saja, α = 0 berarti citra murni. Baris α = 0 disingkirkan dari pemilihan konfigurasi produksi karena satu destinasi (DST-024) belum memiliki citra — lihat Arsitektur §4.2. Lima konfigurasi teratas hasil penalaan:

IDFPangkat bobotBobot priorαnDCG@10Coverage@10

Baris disorot = konfigurasi produksi (setelah baris α = 0 disingkirkan).

6.2.3 Langit-Langit Cascade: Recall@M Kandidat

Karena NeuMF hanya memeringkat ulang Top-M kandidat dari CBF, item yang tidak lolos penyaringan tahap pertama tidak akan pernah muncul di hasil akhir. Recall@M kandidat CBF karena itu menjadi batas atas kinerja cascade:

Recall@M kandidat CBF

nDCG@10 cascade menurut ukuran M dan gerbang

MGerbang CBFGerbang ItemKNN

M = 20 dipakai di produksi sebagai titik keseimbangan antara ruang pencarian yang cukup luas dan biaya komputasi cascade — bukan titik nDCG tertinggi mutlak (M = 50–60 sedikit lebih tinggi, tapi menyaring lebih sedikit sehingga manfaat cascade dibanding NeuMF polos menyusut).

6.2.4 Skenario Cold-Start

Pengguna baru tanpa riwayat interaksi sama sekali dilayani sepenuhnya dari kategori yang diminati (stated preference), tanpa fallback ke popularitas:

Precision@10

0,0000

Recall@10

0,0000

HR@10

0,0000

nDCG@10

0,0000

Dihitung dari 96 baris (10% pengguna) yang seluruh interaksinya disisihkan saat evaluasi.

6.3 Prediksi Kunjungan Wisatawan

Delapan model dibandingkan: tiga baseline naif (rata-rata destinasi, lag-7, lag-365), dua baseline musiman (rata-rata musim, rata-rata musim×hari), dan tiga model sekuensial. Diurutkan menurut MAE (lebih rendah lebih baik):

ModelKelompokMAERMSEMAPEsMAPE

GRU dan LSTM tidak mengungguli RNN sederhana pada data ini — kemungkinan karena horizon prediksi pendek dan pola musiman yang dominan tidak membutuhkan kapasitas memori jangka panjang tambahan yang ditawarkan gerbang GRU/LSTM.

6.4 Optimasi Rute: Ablation Algoritma Genetika

Empat varian bobot fitness (A/B/C/D, lihat Arsitektur §4.6) dibandingkan dengan rute acak dan algoritma greedy, rata-rata 40 skenario pengguna.

nDCG rute (relevansi urutan kunjungan)

"UrutanRekomendasi" (=1,0) adalah acuan definisi, bukan metode nyata — dikeluarkan dari grafik.

Rata-rata skor kepadatan destinasi terpilih (rendah = baik)

VarianDestinasiTotal kmKepadatan rataLayak anggaranWaktu (detik)