Sistem Rekomendasi Tempat Wisata
Sebuah sistem rekomendasi destinasi wisata di Indonesia yang dibangun dengan menggabungkan pendekatan Content-Based Filtering dan Collaborative Filtering, untuk membantu wisatawan menemukan tempat yang relevan dengan preferensi mereka.
Project Overview
Di era digital, masyarakat memiliki akses yang sangat luas terhadap informasi destinasi wisata melalui blog perjalanan, media sosial, aplikasi peta, hingga situs ulasan. Namun, volume informasi yang terlalu besar dapat menyebabkan information overload, di mana wisatawan kesulitan memilih tempat wisata yang sesuai dengan preferensi, budget, waktu kunjungan, maupun jenis aktivitas yang diinginkan.
Situasi ini menciptakan kebutuhan akan sistem rekomendasi tempat wisata yang cerdas dan personal, yang dapat membantu menyaring informasi dan menyarankan destinasi paling relevan berdasarkan minat, histori perjalanan, atau ulasan pengguna lain. Selain bermanfaat bagi wisatawan, sistem ini juga membantu industri pariwisata meningkatkan visibilitas destinasi yang belum populer dan mendorong pemerataan kunjungan.
Penelitian terdahulu menunjukkan efektivitas pendekatan seperti content-based filtering dengan kategori wisata dan perhitungan jarak geografis menggunakan rumus Haversine (Yulfihani & Zakariyah, 2024), serta item-based collaborative filtering yang memanfaatkan rating pengguna untuk mengenalkan destinasi baru (Pangaribuan & Sinaga, 2023). Berdasarkan hal tersebut, proyek ini bertujuan membangun sistem rekomendasi yang menggabungkan kedua pendekatan tersebut agar mampu memberikan rekomendasi yang akurat, relevan, dan personal.
Business Understanding
Wisatawan kerap kesulitan memilih destinasi yang sesuai dengan preferensi mereka akibat banyaknya pilihan yang tersedia di platform digital. Platform dan aplikasi pariwisata membutuhkan sistem yang mampu menyajikan rekomendasi relevan dan personal, guna meningkatkan keterlibatan pengguna, memperpanjang durasi kunjungan, serta mendukung promosi destinasi secara lebih terarah.
Problem Statements
- Berdasarkan data pengguna dan preferensi sebelumnya, bagaimana cara merekomendasikan destinasi wisata yang memiliki karakteristik serupa dengan tempat-tempat yang telah disukai pengguna?
- Bagaimana cara memberikan rekomendasi destinasi wisata berdasarkan preferensi dan perilaku pengguna lain yang memiliki minat wisata serupa?
Goals
- Mengembangkan sistem rekomendasi tempat wisata berbasis content-based filtering yang dapat mengenali pola preferensi pengguna dari data destinasi wisata.
- Mengembangkan sistem rekomendasi tempat wisata berbasis collaborative filtering yang dapat memanfaatkan interaksi pengguna (rating) dan kesamaan preferensi antar pengguna.
Solution Approach
- Content-Based Filtering — memanfaatkan informasi dari destinasi wisata yang telah disukai atau dikunjungi pengguna. Sistem menganalisis fitur seperti kategori wisata (alam, budaya, sejarah, kuliner), lokasi, dan deskripsi tempat wisata, lalu mencari tempat lain yang memiliki kemiripan. Teknik TF-IDF dan cosine similarity digunakan untuk menghitung tingkat kemiripan antar destinasi.
- Collaborative Filtering — menganalisis interaksi pengguna seperti rating atau ulasan terhadap destinasi tertentu, lalu menemukan pengguna lain dengan pola preferensi serupa. Sistem merekomendasikan tempat-tempat yang disukai pengguna serupa, bahkan jika belum pernah dikunjungi oleh pengguna target, dengan metode item-based collaborative filtering yang membutuhkan data rating.
Data Understanding
Dataset yang digunakan merupakan data tempat pariwisata di Indonesia, bersumber dari Indonesia Tourism Destination (Kaggle), terdiri dari tiga file utama: user.csv, tourism_with_id.csv, dan tourism_rating.csv.
1. Users Dataset
Berisi 300 sampel data pengguna tanpa missing values maupun duplikasi. Variabel yang tersedia:
- • User_Id: ID dari pengguna.
- • Location: Domisili pengguna.
- • Age: Usia pengguna.
2. Tourism with ID Dataset
Berisi 437 sampel destinasi wisata dengan 6 kategori: Budaya, Taman Hiburan, Cagar Alam, Bahari, Pusat Perbelanjaan, dan Tempat Ibadah. Terdapat missing values sejumlah 232 pada kolom Total_Minutes dan 437 pada kolom Unnamed: 11, namun kedua kolom ini tidak digunakan sehingga dapat diabaikan. Tidak ada data duplikat. Variabel yang tersedia:
- • Place_Id: ID tempat wisata.
- • Place_Name: Nama tempat wisata.
- • Description: Deskripsi singkat tempat wisata.
- • Category: Kategori tempat wisata.
- • City: Kota tempat wisata berada.
- • Price: Harga masuk tempat wisata.
- • Rating: Rating tempat wisata.
- • Time_Minutes: Durasi rata-rata kunjungan.
- • Coordinate, Lat, Long: Data koordinat lokasi (JSON, latitude, longitude).
- • Unnamed: Kolom kosong yang tidak digunakan.
3. Tourism Rating Dataset
Berisi 10.000 sampel penilaian dari pengguna dengan rentang rating 1 hingga 5. Seluruh 300 pengguna telah memberikan penilaian, dan seluruh 437 destinasi wisata sudah dinilai. Tidak ada missing values. Terdapat duplikasi berdasarkan kombinasi User_Id dan Place_Id, namun setiap entri memiliki nilai rating yang berbeda atau merepresentasikan kunjungan berulang, sehingga duplikasi tersebut dianggap valid. Variabel yang tersedia:
- • User_Id: ID pengguna.
- • Place_Id: ID tempat wisata.
- • Place_Ratings: Nilai rating pengguna (skala 1-5).
Karena ketiga dataset tidak memiliki missing values pada fitur yang dibutuhkan, tahap Data Preparation tidak memerlukan handling untuk missing values.
Exploratory Data Analysis (EDA)
Beberapa visualisasi dilakukan untuk mendapatkan insight awal terhadap data.
1. Distribusi Rating

Distribusi rating cenderung normal, namun rating 3 dan 4 mendominasi, menandakan banyak pengguna cenderung memberikan ulasan positif dan netral.
2. 10 Tempat Wisata Terfavorit

Beberapa tempat wisata mendapatkan lebih banyak perhatian pengguna. Tempat-tempat ini bisa menjadi kandidat populer dalam sistem rekomendasi.
3. Jumlah Tempat Wisata per Kategori

Taman Hiburan dan Budaya menjadi kategori dominan, yang dapat digunakan untuk mengelompokkan preferensi pengguna berdasarkan jenis wisata favorit mereka.
Data Preparation
Agar model dapat dengan mudah memahami dataset, dataset melewati beberapa tahapan secara berurutan:
- Menyalin DataFrame Rating ke variabel baru
all_tourismuntuk memudahkan pengolahan dan menghindari modifikasi data asli secara tidak sengaja. - Menggabungkan Metadata Tempat Wisata — menggabungkan
Place_NamedanCategorydari datasettourismskeall_tourismberdasarkanPlace_Iduntuk memberi konteks konten pada model content-based. - Mengecek Missing Values setelah penggabungan untuk memastikan tidak ada data hilang yang memengaruhi proses modeling.
- Mengurutkan Data berdasarkan Place_Id untuk menjaga konsistensi dan keterbacaan saat pengecekan manual atau debugging.
- Mengganti Spasi dengan Underscore pada nilai kategori agar formatnya seragam dan mudah diproses untuk fitur berbasis teks (TF-IDF) atau visualisasi.
- Menghapus Duplikasi berdasarkan Place_Id agar data bersih dan tidak menyebabkan bias dalam rekomendasi, mengingat content-based filtering hanya membutuhkan satu baris metadata unik per tempat.
- Mengonversi Kolom menjadi List untuk membangun dataframe baru
tourism_newyang menjadi basis metadata content-based. - Membuat DataFrame Metadata Final yang bersih dan ringkas untuk proses feature extraction (TF-IDF berdasarkan kategori).
- TF-IDF Vectorization — data kategori setiap tempat wisata diubah menjadi representasi numerik menggunakan
TfidfVectorizerdari scikit-learn. Setelah proses fit dan transform, fitur-fitur penting diidentifikasi dan dibentuk menjadi matriks menggunakantodense()untuk mengukur keterkaitan antara destinasi dengan fitur-fitur penting tersebut.
Selain tahapan di atas, terdapat tahapan tambahan untuk kebutuhan Collaborative Filtering:
- User_Id dan Place_Id diubah menjadi bentuk numerik menggunakan label encoding, karena model pembelajaran mesin hanya dapat bekerja dengan input numerik.
- Data pengguna, destinasi, dan rating digabungkan ke dalam satu dataset utuh, sehingga setiap entri mewakili hubungan antara satu pengguna dan satu destinasi beserta rating-nya.
- Nilai rating (1-5) dinormalisasi ke rentang [0, 1] untuk menjaga kestabilan dan konsistensi pelatihan, serta mempercepat konvergensi model.
- Dataset dibagi menjadi data latih (training set) dan data validasi (validation set) dengan rasio 80:20, untuk mengevaluasi kemampuan generalisasi model.
Modeling: Content-Based Filtering
Pendekatan ini berfokus pada metadata tiap tempat wisata, seperti kategori, untuk mencari kesamaan antar destinasi. Sistem akan merekomendasikan tempat wisata lain yang memiliki karakteristik serupa berdasarkan kategori kontennya.
Kelebihan
- • Tidak bergantung pada data pengguna — hanya membutuhkan data atribut item, cocok saat data interaksi pengguna belum tersedia atau minim.
- • Rekomendasi personal dan konsisten — selalu merekomendasikan item yang mirip secara konten dengan item yang sudah disukai pengguna.
- • Mudah dipahami dan diimplementasikan — algoritma sederhana dengan konsep yang mudah dimengerti.
Kekurangan
- • Keterbatasan eksplorasi (filter bubble) — rekomendasi cenderung monoton dan terbatas pada jenis konten yang sudah dikenal pengguna.
- • Butuh metadata lengkap dan berkualitas — jika atribut konten tidak representatif, hasil rekomendasi bisa kurang akurat.
- • Tidak menangani preferensi pengguna secara langsung — sistem tidak mempelajari pola interaksi pengguna secara eksplisit.
1. Similarity Computation
Kemiripan antar tempat wisata dihitung menggunakan cosine similarity terhadap matrix TF-IDF, sehingga didapatkan matriks yang menggambarkan hubungan kemiripan antar destinasi. Berikut contoh sampel data destinasi wisata beserta korelasinya:
| tourism_name | Trans Studio Bandung | Puncak Gunung Api Purba - Nglanggeran | Istana Negara Republik Indonesia | Taman Prestasi | Food Junction Grand Pakuwon |
|---|---|---|---|---|---|
| Pesona Nirwana Waterpark & Cottages | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 |
| Sam Poo Kong Temple | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 |
| Pantai Timang | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| Jogja Bay Pirates Adventure Waterpark | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 |
| Pantai Sepanjang | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| Pulau Semak Daun | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| Taman Air Mancur Menari Kenjeran | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 |
Nilai 1.0 menunjukkan adanya keterkaitan atau relevansi antara objek wisata dengan lokasi tersebut, sementara nilai 0.0 menunjukkan tidak adanya keterkaitan. Terlihat bahwa Pesona Nirwana Waterpark & Cottages, Jogja Bay Pirates Adventure Waterpark, dan Taman Air Mancur Menari Kenjeran memiliki keterkaitan dengan Trans Studio Bandung dan Taman Prestasi, yang mungkin menunjukkan kemiripan wilayah atau hubungan pengunjung yang serupa. Sebaliknya, Sam Poo Kong Temple hanya terkait dengan Istana Negara Republik Indonesia, menandakan lokasi tersebut lebih spesifik dalam konteks tertentu. Sebagian besar objek wisata lain seperti Pantai Timang, Pantai Sepanjang, dan Pulau Semak Daun tidak menunjukkan keterkaitan dengan lokasi manapun yang tercantum.
2. Fungsi Rekomendasi
Dibuat fungsi tourism_recommendations yang menerima nama wisata sebagai input dan mengembalikan Top-N wisata dengan kemiripan tertinggi. Fungsi ini mencari kemiripan antar tempat wisata berdasarkan atribut kategori yang telah diubah menjadi representasi numerik menggunakan TF-IDF, lalu menggunakan matriks cosine similarity untuk mengidentifikasi tempat wisata dengan tingkat kemiripan tertinggi terhadap input, dan mengembalikannya sebagai rekomendasi.
Untuk mengevaluasi efektivitas teknik ini, dilakukan pengujian dengan "Lawang Sewu" sebagai input. Berikut hasil output dari fungsi tersebut:
| tourism_name | category |
|---|---|
| Monumen Nasional | Budaya |
| Candi Sewu | Budaya |
| Museum Benteng Vredeburg Yogyakarta | Budaya |
| Museum Satria Mandala | Budaya |
| Kyotoku Floating Market | Budaya |
Ketika "Lawang Sewu" digunakan sebagai parameter, sistem mencari objek wisata lain yang memiliki kemiripan konten berdasarkan kategori wisata, yaitu Budaya. Sistem merekomendasikan destinasi serupa berdasarkan kategori yang sama, sehingga pengunjung yang tertarik dengan wisata budaya mendapatkan pilihan tempat lain yang relevan dan menarik. Hasil rekomendasi seperti Monumen Nasional, Candi Sewu, Museum Benteng Vredeburg Yogyakarta, Museum Satria Mandala, dan Kyotoku Floating Market juga termasuk kategori Budaya, menunjukkan bahwa sistem mampu mengelompokkan objek wisata berdasarkan konten kategori sehingga memberikan rekomendasi yang sesuai minat pengguna.
Rekomendasi ini sangat membantu wisatawan yang ingin mengeksplorasi lebih banyak destinasi budaya tanpa harus melakukan pencarian manual yang panjang. Secara praktis, teknik ini meningkatkan pengalaman pengguna dengan memberikan saran yang personal dan tepat sasaran, sehingga peluang untuk memperluas kunjungan wisata pada kategori tertentu menjadi lebih besar. Dengan demikian, content-based filtering berfungsi sebagai alat efektif untuk menyaring dan merekomendasikan objek wisata yang mirip berdasarkan fitur konten, dan hasil rekomendasinya menunjukkan konsistensi yang baik dengan harapan pengguna.
Modeling: Collaborative Filtering
Sistem rekomendasi destinasi wisata dibangun menggunakan pendekatan Collaborative Filtering berbasis model, dengan tujuan memberikan rekomendasi destinasi yang relevan kepada pengguna berdasarkan histori penilaian (rating) pengguna lain yang memiliki preferensi serupa.
Kelebihan
- • Tidak membutuhkan informasi detail dari item, cukup data rating.
- • Rekomendasi bersifat personalisasi karena berdasarkan pola perilaku pengguna.
- • Fleksibel dan adaptif terhadap preferensi pengguna yang terus berubah.
- • Dapat menemukan hubungan atau preferensi tersembunyi yang tidak terlihat secara eksplisit.
Kekurangan
- • Cold-start problem — sulit memberikan rekomendasi pada pengguna baru atau item baru yang belum memiliki rating.
- • Data sparsity — jika banyak user belum memberi rating, matriks user-item menjadi sangat jarang sehingga kualitas rekomendasi menurun.
- • Scalability issue — jumlah user dan item yang sangat besar dapat menyebabkan beban komputasi tinggi.
- • Noise and bias — rating pengguna bisa bersifat bias atau tidak konsisten, memengaruhi akurasi model.
1. Pembangunan Model RecommenderNet
Model rekomendasi dibangun menggunakan layer embedding untuk merepresentasikan masing-masing pengguna dan destinasi wisata ke dalam bentuk vektor berdimensi tetap, sehingga model dapat menangkap karakteristik pengguna dan tempat secara lebih efisien. Interaksi antara pengguna dan destinasi dimodelkan menggunakan dot product antara kedua vektor embedding. Model dilengkapi dengan dropout layer sebagai regularisasi untuk mencegah overfitting. Dalam pelatihan, model menggunakan binary crossentropy sebagai fungsi loss dan Adam optimizer untuk pembaruan bobot secara adaptif dan efisien.
2. Pelatihan Model
Model dilatih selama 100 epoch menggunakan data pelatihan, di mana pada setiap epoch model secara bertahap memperbarui bobot-bobotnya untuk meminimalkan kesalahan prediksi. Dengan menyesuaikan parameter internalnya, model diharapkan mampu menangkap kecenderungan dan minat pengguna secara akurat sehingga dapat memberikan rekomendasi yang lebih relevan dan personal.
Callback EarlyStopping memonitor metrik val_loss. Jika tidak ada perbaikan setelah 10 epoch berturut-turut (patience=10), pelatihan dihentikan lebih awal. Opsi restore_best_weights=True memastikan model mengembalikan bobot terbaik (saat val_loss terendah), sehingga hasil akhir tidak berasal dari epoch terakhir yang mungkin sudah overfitting.
Callback ReduceLROnPlateau juga memantau val_loss, dan akan mengurangi learning rate sebesar setengahnya (factor=0.5) jika tidak ada perbaikan selama 5 epoch. Tujuannya adalah membantu model melambatkan pembelajaran ketika mendekati konvergensi sehingga dapat melewati local minima dan menghasilkan generalisasi yang lebih baik. Learning rate tidak akan dikurangi lebih jauh dari 1e-6.
Konfigurasi pelatihan (model.fit()):
- •
x_traindany_trainsebagai data pelatihan. - •
batch_size=32— data dibagi ke dalam batch berisi 32 sampel per iterasi. - •
epochs=100— jumlah maksimum epoch (dapat berhenti lebih awal karena EarlyStopping). - •
validation_data=(x_val, y_val)— untuk memantau performa model pada data yang tidak dilatih. - •
callbacks— menyisipkan fungsi kontrol otomatis selama pelatihan. - •
verbose=1— menampilkan progres pelatihan secara real-time.
3. Inferensi dan Rekomendasi
Sistem mengambil satu pengguna secara acak dari dataset sebagai sampel, kemudian mengidentifikasi destinasi wisata yang belum pernah dikunjungi oleh pengguna tersebut. Model yang telah dilatih digunakan untuk memprediksi tingkat kesukaan pengguna terhadap setiap destinasi yang belum dikunjungi. Hasil prediksi diurutkan, dan 10 destinasi dengan skor tertinggi dipilih sebagai rekomendasi personalized untuk pengguna tersebut.
Berikut hasil rekomendasi pada salah satu sampel pengguna:
Rating Destinasi Wisata Tertinggi dari User
| Nama Tempat Wisata | Kategori |
|---|---|
| Wisata Agro Edukatif Istana Susu Cibugary | Taman_Hiburan |
| Desa Wisata Sungai Code Jogja Kota | Taman_Hiburan |
| Orchid Forest Cikole | Taman_Hiburan |
| Curug Tilu Leuwi Opat | Cagar_Alam |
| Hutan Wisata Tinjomoyo Semarang | Cagar_Alam |
Top 10 Rekomendasi Tempat Wisata Baru dari Sistem
| Nama Tempat Wisata | Kategori |
|---|---|
| Kampung Cina | Budaya |
| Sumur Gumuling | Taman_Hiburan |
| The World Landmarks - Merapi Park Yogyakarta | Taman_Hiburan |
| Pantai Baron | Bahari |
| Geoforest Watu Payung Turunan | Cagar_Alam |
| Masjid Agung Trans Studio Bandung | Tempat_Ibadah |
| Sanghyang Heuleut | Cagar_Alam |
| Tafso Barn | Cagar_Alam |
| Glamping Lakeside Rancabali | Taman_Hiburan |
| Bukit Jamur | Cagar_Alam |
Sistem berhasil mengidentifikasi destinasi yang belum pernah dikunjungi, memprediksi tingkat kesukaan pengguna terhadap destinasi-destinasi tersebut, dan menyusun 10 rekomendasi utama dengan skor tertinggi. Jika dibandingkan dengan destinasi yang telah disukai sebelumnya (bertema Taman Hiburan dan Cagar Alam), sebagian besar rekomendasi baru juga berasal dari kategori yang serupa, ditambah variasi kategori lain seperti Budaya, Bahari, dan Tempat Ibadah. Hal ini menunjukkan bahwa sistem tidak hanya mempertahankan preferensi utama pengguna, tetapi juga memberikan opsi eksplorasi yang relevan, mendukung pengalaman wisata yang lebih personal dan bermakna.
Evaluation
1. Content-Based Filtering — Precision@K
Evaluasi pada model ini menggunakan metrik Precision, yang mengukur proporsi item yang direkomendasikan dan relevan dari keseluruhan item yang direkomendasikan, serta mengukur seberapa akurat prediksi model dalam K item teratas. Rumus Precision@K:
- • Precision@K: nilai presisi untuk K rekomendasi teratas.
- • Jumlah item relevan dalam top-K: banyaknya item yang benar-benar relevan di antara K item yang direkomendasikan.
- • K: jumlah item teratas yang dipertimbangkan dalam evaluasi.
Precision@K memiliki rentang nilai 0 hingga 1, di mana 0 berarti tidak ada item relevan dalam K rekomendasi teratas, dan 1 berarti semua K item yang direkomendasikan adalah relevan.
Sistem merekomendasikan 5 item teratas (K=5), dan dari 5 item tersebut ada 5 item relevan:
Nilai jumlah item relevan sebanyak 5 didapatkan karena seluruh kategori tempat wisata yang muncul pada rekomendasi adalah Budaya, relevan dengan kategori tempat wisata yang pernah dikunjungi sebelumnya oleh pengguna. Hasil evaluasi dengan precision bernilai 1 menunjukkan bahwa seluruh 5 item yang direkomendasikan adalah relevan.
2. Collaborative Filtering — RMSE
Pengukuran evaluasi menggunakan metode RMSE (Root Mean Square Error), yaitu metrik yang mengukur rata-rata kesalahan prediksi dalam satuan yang sama dengan variabel target. Rumus RMSE:
- • RMSE: Root Mean Square Error.
- • n: jumlah total observasi/data point.
- • Ai: nilai aktual (actual) untuk observasi ke-i.
- • Pi: nilai prediksi (predicted) untuk observasi ke-i.
- • (Ai − Pi)²: kuadrat dari selisih antara nilai aktual dan prediksi.
Interpretasi: RMSE = 0 berarti prediksi sempurna (tidak ada error), RMSE kecil menunjukkan model dengan akurasi prediksi yang baik, dan RMSE besar menunjukkan akurasi prediksi yang buruk.
Kelebihan & Kekurangan RMSE
- • Kelebihan: mudah diinterpretasi (satuan sama dengan target), memberikan penalti lebih besar untuk error yang besar, dan sering digunakan sebagai loss function dalam machine learning.
- • Kekurangan: sensitif terhadap outlier, dan tidak robust terhadap data dengan distribusi error tidak normal.

Kurva RMSE terhadap epoch pada data training (biru) dan testing (oranye) dari model collaborative filtering.
Grafik menunjukkan kurva pembelajaran model berdasarkan RMSE terhadap jumlah epoch. Seiring bertambahnya epoch, RMSE pada data pelatihan terus menurun secara konsisten, mengindikasikan model semakin baik menyesuaikan diri terhadap data pelatihan. Di sisi lain, RMSE pada data pengujian cenderung menurun di awal pelatihan, namun setelah sekitar epoch ke-10 mulai stagnan bahkan sedikit meningkat.
Pola ini menunjukkan adanya gejala overfitting, yaitu ketika model terlalu menyesuaikan diri pada data pelatihan dan mulai kehilangan kemampuan generalisasi terhadap data baru. Namun demikian, peningkatan RMSE pada data pengujian setelah epoch ke-10 tergolong sangat kecil dan tidak signifikan, sehingga overfitting yang terjadi masih dalam batas yang wajar, terutama mengingat selisih performa antara data pelatihan dan pengujian tidak terlalu besar.
Simpulan
Berdasarkan hasil evaluasi dari kedua pendekatan yang diimplementasikan, dapat disimpulkan bahwa keduanya telah memberikan hasil yang memuaskan dalam konteks permasalahan yang ingin diselesaikan.
Untuk model Content-Based Filtering, evaluasi menggunakan Precision@K menunjukkan nilai 1 pada skenario pengujian dengan K=5, yang berarti seluruh item yang direkomendasikan termasuk dalam kategori relevan dengan preferensi pengguna sebelumnya. Hal ini menunjukkan bahwa sistem mampu mengenali pola preferensi pengguna dan merekomendasikan tempat wisata dengan karakteristik yang serupa secara akurat, menjawab problem statement pertama dengan pendekatan TF-IDF dan cosine similarity yang sesuai dengan solution approach.
Sementara itu, pada model Collaborative Filtering, evaluasi menggunakan RMSE menunjukkan adanya indikasi overfitting, di mana performa pada data pelatihan terus membaik seiring bertambahnya epoch, namun performa pada data pengujian stagnan dan cenderung sedikit memburuk. Meskipun demikian, tingkat overfitting yang terjadi tergolong ringan dan masih dapat dimaklumi, mengingat selisih RMSE antara data pelatihan dan pengujian relatif kecil. Evaluasi ini tetap memberikan gambaran yang relevan terkait kemampuan model dalam memprediksi tingkat kesukaan pengguna terhadap destinasi yang belum dikunjungi, menjawab bagian penting dari problem statement kedua.
Secara keseluruhan, kedua pendekatan telah berhasil menjawab problem statement dan mencapai tujuan proyek, yaitu membangun sistem rekomendasi wisata yang relevan dan personal. Evaluasi dengan metrik yang sesuai — Precision@K untuk content-based dan RMSE untuk collaborative filtering — memberikan gambaran yang jelas mengenai kekuatan dan kelemahan masing-masing pendekatan, dan terbukti mampu menghasilkan sistem rekomendasi yang efektif dalam konteks kebutuhan pengguna.
Referensi
- Pangaribuan, K. P., & Sinaga, M. D. (2023). Rekomendasi wisata di Kabupaten Toba dengan metode item-based collaborative filtering berbasis web. InSeDS, 2(1), 30–39. Tautan
- Yulfihani, I., & Zakariyah, M. (2024). Optimization of tourism destination recommendations in Batang Regency using content-based filtering. JAIC, 8(2), 499–508. Tautan
Informasi Proyek
- StackPython, Pandas, Scikit-learn, TensorFlow, TF-IDF, Cosine Similarity, RecommenderNet
- DatasetIndonesia Tourism Destination
- EvaluasiPrecision@K (CBF), RMSE (CF)