Skip to content

Latest commit

 

History

History
179 lines (127 loc) · 6.01 KB

README.md

File metadata and controls

179 lines (127 loc) · 6.01 KB

Lamogan-Travel-RS

Travel Recommendation System

Sistem Rekomendasi Tempat Wisata berbasis Machine Learning dan Natural Language Processing (NLP) untuk memberikan rekomendasi personal kepada pengguna berdasarkan preferensi mereka.


📌 Deskripsi

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.


📋 Fitur Utama

1. Sistem Rekomendasi

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.

2. Statistik Tempat Wisata

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.

3. Top 10 Tempat Wisata Terbaik

Menghitung daftar tempat wisata terbaik berdasarkan Weighted Rating:

  • Menggunakan rata-rata ulasan dan popularitas (jumlah ulasan).
  • Mengkombinasikan skor dengan pendekatan persentil.

💡 Penjelasan Metode

1. Simple Recommendation

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.

Kelebihan:

  • Mudah digunakan, tidak memerlukan data historis pengguna.

Kekurangan:

  • Tidak personal, hasil filter sama untuk semua pengguna.

2. Content-Based Filtering

Rekomendasi berdasarkan kesamaan fitur konten (nama, kategori, deskripsi).

Algoritma:

  • Menggabungkan fitur menjadi satu kolom (combined).
  • Menggunakan CountVectorizer untuk representasi vektor fitur.
  • Menghitung kesamaan menggunakan Cosine Similarity.

Kelebihan:

  • Tidak memerlukan data pengguna, fokus pada kesamaan konten.

Kekurangan:

  • Keterbatasan pada fitur yang disediakan.

3. Content-Based Filtering+ (TF-IDF)

Peningkatan metode content-based dengan pembobotan TF-IDF.

Algoritma:

  • 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.

Kelebihan:

  • Akurat untuk dataset dengan variasi deskripsi yang tinggi.

Kekurangan:

  • Tetap terbatas pada konten yang tersedia.

4. Collaborative Filtering (RecommenderNet)

Rekomendasi berdasarkan perilaku pengguna lain menggunakan TensorFlow.

Algoritma:

  • Menggunakan embedding untuk merepresentasikan user dan tempat dalam ruang vektor.
  • Model memprediksi rating untuk tempat yang belum dikunjungi.
  • Menangkap pola laten dari preferensi pengguna.

Kelebihan:

  • Hasil personal yang mendalam.

Kekurangan:

  • Membutuhkan data historis pengguna (masalah cold-start).

5. Collaborative Filtering with SVD

Metode dekomposisi matriks untuk menangani sparsity data.

Algoritma:

  • Membagi matriks interaksi user-item menjadi user latent dan item latent factors.
  • Menggunakan kombinasi faktor untuk memprediksi rating.

Kelebihan:

  • Efektif untuk dataset yang sparsity tinggi.

Kekurangan:

  • Membutuhkan data cukup banyak untuk akurasi tinggi.

📊 Statistik dan Visualisasi

  • 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.

💻 Instalasi

1. Clone repository ini:

git clone https://github.com/username/lamogan-travel-rs.git
cd lamogan-travel-rs

2. Install dependencies:

pip install -r requirements.txt

3. Jalankan aplikasi Streamlit:

streamlit run main3.py

🛠️ Tech Stack

  • Python
  • Streamlit (UI)
  • TensorFlow (Collaborative Filtering)
  • scikit-learn (Content-Based Filtering)
  • pandas dan numpy (manipulasi data)
  • Sastrawi (Text Preprocessing Bahasa Indonesia)

🌟 Pengembangan Selanjutnya

  1. Peningkatan Antarmuka:

    • Tambahkan animasi pada rekomendasi.
    • Berikan tampilan visual peta untuk lokasi tempat wisata.
  2. Integrasi API:

    • Hubungkan data dengan API seperti Google Places untuk pembaruan data waktu nyata.
  3. Fitur Sosial:

    • Izinkan pengguna untuk membagikan tempat favorit mereka.
    • Tambahkan fitur ulasan pengguna langsung di aplikasi.

🤝 Kontribusi

Kontribusi sangat dihargai! Silakan buka pull request untuk saran, perbaikan, atau fitur baru.


📄 Lisensi

Proyek ini dilisensikan di bawah MIT License.

© 2024 Lamongan Travel Recommendation System. Bisri Copyright.