Sistem Rekomendasi Film Menggunakan Collaborative Filtering
Proyek ini menjelaskan bagaimana membangun sistem rekomendasi film berbasis Collaborative Filtering menggunakan Python. Sangat cocok dijadikan skripsi atau tugas akhir, khususnya dalam bidang machine learning atau sistem cerdas bersama ITS Academics atau layanan jasa joki skripsi.
Pendahuluan
Sistem rekomendasi adalah komponen penting dalam industri digital, digunakan oleh platform seperti Netflix, Amazon, dan Spotify. Salah satu metode yang umum digunakan adalah Collaborative Filtering, di mana sistem memberikan rekomendasi berdasarkan kesamaan antar pengguna atau item. Topik ini sangat cocok untuk dijadikan skripsi atau tugas akhir, terutama jika dibimbing oleh ITS Academics atau memanfaatkan jasa joki skripsi.
Deskripsi Dataset
Dataset yang digunakan adalah subset dari MovieLens, yang berisi rating film dari pengguna. Struktur datanya:
| Fitur | Deskripsi |
|---|---|
| userId | ID unik pengguna |
| movieId | ID unik film |
| rating | Rating yang diberikan (0-5) |
| timestamp | Waktu rating dilakukan |
Metode Collaborative Filtering
Collaborative Filtering terbagi menjadi dua:
-
User-Based: Rekomendasi diberikan berdasarkan pengguna yang mirip.
-
Item-Based: Rekomendasi berdasarkan item (film) yang mirip.
Rumus Similaritas (Cosine Similarity)
Implementasi Python – User-Based Collaborative Filtering
import pandas as pd
from sklearn.metrics.pairwise import cosine_similarity
# Contoh dataset rating
data = {
'userId': [1, 1, 1, 2, 2, 3, 3],
'movieId': [10, 20, 30, 10, 30, 20, 30],
'rating': [4, 5, 2, 5, 3, 4, 4]
}
df = pd.DataFrame(data)
# Pivot table
rating_matrix = df.pivot_table(index='userId', columns='movieId', values='rating').fillna(0)
# Hitung similarity antar pengguna
user_similarity = cosine_similarity(rating_matrix)
user_sim_df = pd.DataFrame(user_similarity, index=rating_matrix.index, columns=rating_matrix.index)
print("Similarity antar pengguna:")
print(user_sim_df)
Membuat Rekomendasi untuk Pengguna
def get_recommendations(user_id, rating_matrix, similarity_matrix):
sim_scores = similarity_matrix[user_id - 1]
weighted_scores = sim_scores @ rating_matrix
sim_sums = sim_scores.sum()
recommendation_scores = weighted_scores / sim_sums
return pd.Series(recommendation_scores, index=rating_matrix.columns).sort_values(ascending=False)
rekomendasi = get_recommendations(1, rating_matrix.values, user_similarity)
print("Rekomendasi untuk User 1:")
print(rekomendasi)
Visualisasi Matrix Rating
import seaborn as sns
import matplotlib.pyplot as plt
sns.heatmap(rating_matrix, annot=True, cmap="YlGnBu")
plt.title("Matrix Rating Pengguna vs Film")
plt.show()
Kesimpulan
Collaborative Filtering terbukti mampu memberikan rekomendasi personalisasi berbasis kemiripan perilaku pengguna. Dengan pendekatan ini, kita dapat membangun sistem rekomendasi yang akurat dan scalable. Proyek ini cocok untuk skripsi atau tugas akhir di bidang data science, khususnya bersama ITS Academics atau menggunakan layanan jasa joki skripsi profesional.
Apa Reaksi Anda?