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.

Sistem Rekomendasi Film Menggunakan Collaborative Filtering

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:

  1. User-Based: Rekomendasi diberikan berdasarkan pengguna yang mirip.

  2. Item-Based: Rekomendasi berdasarkan item (film) yang mirip.

Rumus Similaritas (Cosine Similarity)
sim(A,B)=ABABsim(A, B) = \frac{A \cdot B}{\|A\| \|B\|}

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()

Output image

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?

like

dislike

love

funny

angry

sad

wow