Travel Recommendation System
Sistem Rekomendasi Tempat Wisata berbasis Machine Learning dan Natural Language Processing (NLP) untuk memberikan rekomendasi personal kepada pengguna berdasarkan preferensi mereka.
Lamogan-Travel-RS adalah sistem rekomendasi tempat wisata yang dirancang untuk membantu pengguna menemukan destinasi wisata terbaik. Aplikasi ini menggunakan kombinasi beberapa metode rekomendasi, termasuk Simple Recommendation, Content-Based Filtering, Collaborative Filtering, dan Collaborative Filtering with SVD. Selain itu, sistem ini menyediakan fitur visualisasi statistik dan daftar top 10 tempat terbaik.
Menawarkan beberapa metode rekomendasi untuk pengalaman yang lebih personal:
- Simple Recommendation: Rekomendasi berdasarkan filter eksplisit (kategori, harga, rating).
- Content-Based Filtering: Rekomendasi berdasarkan fitur konten (nama, kategori, deskripsi tempat).
- Content-Based Filtering+ (TF-IDF): Versi lanjutan dengan pembobotan term menggunakan TF-IDF.
- Collaborative Filtering (RecommenderNet): Menggunakan TensorFlow untuk prediksi berdasarkan data historis pengguna.
- Collaborative Filtering with SVD: Menggunakan teknik dekomposisi matriks untuk menangani data sparse.
Fitur visualisasi untuk memberikan wawasan mendalam tentang data tempat wisata:
- Distribusi Kategori: Menampilkan jumlah tempat wisata per kategori.
- Distribusi Rating: Menunjukkan penyebaran rating tempat wisata dalam histogram.
- Kota Terbanyak: Kota dengan jumlah tempat wisata terbanyak.
- Hubungan Harga dan Rating: Scatterplot antara harga dan rating tempat wisata.
- Statistik Pengguna: Distribusi usia, gender, dan lokasi pengguna.
Menghitung daftar tempat wisata terbaik berdasarkan Weighted Rating:
- Menggunakan rata-rata ulasan dan popularitas (jumlah ulasan).
- Mengkombinasikan skor dengan pendekatan persentil.
Metode paling dasar untuk rekomendasi dengan filter eksplisit:
- Input: Kategori, harga minimum/maksimum, rating minimum, jumlah ulasan.
- Output: Daftar tempat berdasarkan rating tertinggi yang sesuai filter.
- Mudah digunakan, tidak memerlukan data historis pengguna.
- Tidak personal, hasil filter sama untuk semua pengguna.
Rekomendasi berdasarkan kesamaan fitur konten (nama, kategori, deskripsi).
- Menggabungkan fitur menjadi satu kolom (
combined
). - Menggunakan CountVectorizer untuk representasi vektor fitur.
- Menghitung kesamaan menggunakan Cosine Similarity.
- Tidak memerlukan data pengguna, fokus pada kesamaan konten.
- Keterbatasan pada fitur yang disediakan.
Peningkatan metode content-based dengan pembobotan TF-IDF.
- TF-IDF memberikan bobot lebih tinggi untuk term unik dan menurunkan bobot untuk term umum.
- Membantu menangkap keunikan deskripsi tempat wisata, memberikan hasil yang lebih relevan.
- Akurat untuk dataset dengan variasi deskripsi yang tinggi.
- Tetap terbatas pada konten yang tersedia.
Rekomendasi berdasarkan perilaku pengguna lain menggunakan TensorFlow.
- Menggunakan embedding untuk merepresentasikan user dan tempat dalam ruang vektor.
- Model memprediksi rating untuk tempat yang belum dikunjungi.
- Menangkap pola laten dari preferensi pengguna.
- Hasil personal yang mendalam.
- Membutuhkan data historis pengguna (masalah cold-start).
Metode dekomposisi matriks untuk menangani sparsity data.
- Membagi matriks interaksi user-item menjadi user latent dan item latent factors.
- Menggunakan kombinasi faktor untuk memprediksi rating.
- Efektif untuk dataset yang sparsity tinggi.
- Membutuhkan data cukup banyak untuk akurasi tinggi.
- Distribusi Kategori: Menampilkan jumlah tempat wisata per kategori.
- Distribusi Rating: Menunjukkan penyebaran rating tempat wisata dalam histogram.
- Kota Terbanyak: Kota dengan jumlah tempat wisata terbanyak.
- Hubungan Harga dan Rating: Scatterplot antara harga dan rating tempat wisata.
- Statistik Pengguna: Distribusi usia, gender, dan lokasi pengguna.
git clone https://github.com/username/lamogan-travel-rs.git
cd lamogan-travel-rs
pip install -r requirements.txt
streamlit run main3.py
- Python
- Streamlit (UI)
- TensorFlow (Collaborative Filtering)
- scikit-learn (Content-Based Filtering)
- pandas dan numpy (manipulasi data)
- Sastrawi (Text Preprocessing Bahasa Indonesia)
-
Peningkatan Antarmuka:
- Tambahkan animasi pada rekomendasi.
- Berikan tampilan visual peta untuk lokasi tempat wisata.
-
Integrasi API:
- Hubungkan data dengan API seperti Google Places untuk pembaruan data waktu nyata.
-
Fitur Sosial:
- Izinkan pengguna untuk membagikan tempat favorit mereka.
- Tambahkan fitur ulasan pengguna langsung di aplikasi.
Kontribusi sangat dihargai! Silakan buka pull request untuk saran, perbaikan, atau fitur baru.
Proyek ini dilisensikan di bawah MIT License.
© 2024 Lamongan Travel Recommendation System. Bisri Copyright.