Ni Made Rika Padeswari Kusuma
Kota Yogyakarta atau sering pula disebut Jogja merupakan salah satu kota yang memiliki objek wisata yang beragam, mulai dari wisata budaya hingga wisata bahari. Tercatat bahwa jumlah kunjungan wisata di kota Yogyakarta baik dari mancanegara maupun nusantara mencapai angka 1 juta pada tahun 2020 dan terus meningkat tiap tahunnya (dikutip dari Dinas Pariwisata Kota Yogyakarta)
Untuk memudahkan wisatawan dalam memilih objek wisata yang akan dikunjungi khususnya di kota Yogyakarta, dapat dikembangkan sebuah sistem rekomendasi yang menerapkan model machine learning. Sistem rekomendasi dapat bekerja secara efisien dalam memberikan rekomendasi kepada wisatawan berdasarkan preferensi dan juga tempat wisata yang mirip.
Pada project ini, akan dibangun sebuah sistem rekomendasi obyek wisata di Kota Yogyakarta dengan menggunakan metode Content-Based Filtering. Content-Based Filtering bekerja dengan memberikan rekomendasi yang mirip dengan item atau barang yang disukai sebelumnya. Pada kasus ini, kemiripan dinilai dari atribut yang dimiliki oleh obyek wisata itu sendiri seperti kategori dari obyek wisata. Keuntungan dari penggunaan Content-Based Filtering dalam membuat sistem rekomendasi yaitu teknik ini mampu memberikan rekomendasi tanpa bergantung pada user lain.
Data yang digunakan diambil dari website Kaggle, yang terdiri dari 4 files dan 14 fitur secara keseluruhan. Pada dataset ini data tempat wisata berada pada 5 kota di Indonesia, diantaranya yaitu Jakarta, Yogyakarta, Bandung, Semarang, dan Surabaya. Sehingga perlu dilakukan filtering terhadap dataset agar menampilkan data tempat wisata yang berada pada kota Yogyakarta saja. Dimana total data tempat wisata di kota Yogyakarta berjumlah 126.
Sebelum masuk ke tahap modeling, perlu dilakukan data preparation untuk mempersiapkan data yang akan digunakan untuk membangun sistem rekomendasi. Beberapa hal yang dilakukan diantaranya :
Terdapat beberapa missing value pada dataset yang digunakan, sehingga perlu dilakukan penghapusan pada fitur yang memiliki missing value. Hal ini dilakukan karena fitur tersebut tidak diperlukan untuk tahap modeling.
Dilakukan untuk menganalisa fitur-fitur pada dataset. Dilakukan visualisasi pada jumlah tempat wisata berdasarkan kategorinya. Adapun kategori tempat wisata yang terdapat pada dataset diantaranya yaitu Taman Hiburan, Budaya, Cagar Alam, Bahari, dan Pusat Perbelanjaan.
Pada tahapan data preprocessing, dilakukan pengubahan karakter spasi menjadi underscore ('_') pada kategori tempat wisata untuk memudahkan tahap Vectorizer nantinya. Selanjutnya dilakukan penggabungan data tempat wisata yaitu nama tempat beserta kategorinya dengan data rating. Sehingga dihasilkan data sebagai berikut:
Pada data tempat wisata di kota Yogyakarta, terdapat beberapa fitur yang tidak diperlukan dan juga kolom kosong. Sehingga dapat dilakukan penghapusan terhadap fitur-fitur tersebut pada dataframe.
Adapun tahapan yang dilakukan yaitu menghapus data duplikat pada dataset. Hal ini dilakukan karena pada Content-Based Filtering hanya dibutuhkan data unik saja. Selanjutnya dilakukan konversi pada data series ke dalam bentuk list dan membuat dictionary untuk menentukan pasangan key-value pada id tempat wisata, nama tempat wisata, dan kategori tempat wisata. Sehingga dihasilkan data akhir yang siap untuk diproses ke dalam pemodelan.
Tahap Modeling
Pada model dengan menggunakan pendekatan Content-Based Filtering, dilakukan perhitungan nilai vectorizer pada kategori tempat wisata yang kemudian hasilnya diubah ke dalam bentuk matriks. Selanjutnya dibuat dataframe untuk melihat hasil dari matriks vectorizer beserta dengan nama tempat wisata.
Dapat dilihat hasilnya bahwa tempat wisata dengan nama Pantai Sedahan memiliki kategori Bahari, akan bernilai 1 pada kolom Bahari dan bernilai 0 pada kolom lainnya.
Setelah itu dilakukan perhitungan Cosine Similarity atau ukuran kesamaan antar tempat wisata berdasarkan kategorinya. Berdasarkan beberapa sampel yang diambil, dihasilkan bahwa Pantai Watu Kodok memiliki kesamaan dengan Pantai Ngrenehan, Pantai Pok Tunggal, Pantai Sedahan, dan Pantai Nglambor. Dimana kelima tempat wisata tersebut memiliki kategori yang sama yaitu Bahari.
Untuk tahap modeling, dibuat sebuah fungsi dengan parameter nama tempat wisata, similarity data atau kesamaan tempat wisata, nama tempat wisata serta fitur kategori yang digunakan untuk mendefinisikan kemiripan, dan jumlah rekomendasi yang ingin dihasilkan. Fungsi ini akan mengembalikan data yang berupa nama tempat beserta kategorinya yang memiliki nilai similarity terbesar. Model ini menggunakan parameter threshold yang digunakan untuk menentukan jumlah rekomendasi tempat wisata yang ditampilkan berdasarkan nilai kemiripannya. Dimana pada kasus ini, nilai threshold yang digunakan adalah 10. Fungsi dipanggil dengan menambahkan parameter nama tempat wisata yang ingin didapatkan similaritynya. Sehingga akan ditampilkan 10 rekomendasi tempat wisata yang mirip dengan nama tempat wisata yang menjadi parameter.
Dapat dilihat pada gambar di atas, berdasarkan tempat wisata Candi Sewu yang memiliki kategori budaya, dihasilkan 10 rekomendasi tempat wisata yang mirip dengan Candi Sewu. Dimana 10 rekomendasi tempat wisata tersebut memiliki kategori yang sama dengan Candi Sewu yaitu Budaya.
Tahap Evaluasi Model
Metrik yang digunakan pada pendekatan Content-Based Filtering yaitu Precision. Precision merupakan rasio perbandingan prediksi benar positif dan keseluruhan hasil yang diprediksi positif. Pada kasus ini, yaitu sistem rekomendasi, precision bekerja dengan formula jumlah rekomendasi yang diprediksi benar dan bernilai positif dibagi dengan total rekomendasi yang diberikan oleh model.
Berdasarkan validasi yang dilakukan pada model dengan metode Content-Based Filtering, diketahui bahwa tempat wisata Candi Sewu memiliki kategori budaya. Maka model akan memberikan rekomendasi tempat wisata yang mirip dengan Candi Sewu yang artinya memiliki kategori budaya juga. Sehingga didapatkan jumlah rekomendasi yang benar positif adalah 10 dengan total 10 rekomendasi tempat wisata yang diberikan oleh model. Maka nilai metrik precision dari model dengan pendekatan Content-Based Filtering adalah sebesar 100%.