From 64fb85ff17ebbc6c14cbc91387bfb1da91e77447 Mon Sep 17 00:00:00 2001
From: Adrien <adrien.payen@student.uclouvain.be>
Date: Fri, 24 May 2024 18:41:24 +0200
Subject: [PATCH] update files

---
 Home.py           |  4 ++--
 pages/Discover.py |  8 ++++----
 recommender.py    | 18 +++++++++---------
 3 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/Home.py b/Home.py
index d9754e7c..955aa963 100644
--- a/Home.py
+++ b/Home.py
@@ -200,7 +200,7 @@ def display_content_based_recommendations(user_name, user_id=-1, n=15):
     cols_html = ""
 
     # Get top N recommendations using content-based filtering
-    top_n_recommendations = test_contentbased_class(["title_length", "movie_year", "genre", "avg_rating"], "ridge_regression", user_id=-1, n=10)
+    top_n_recommendations = test_contentbased_class(["title_length", "movie_year", "genre", "avg_rating"], "ridge_regression", user_id=-1, n=15)
     
     if top_n_recommendations:
         st.subheader(f"Discover Great Content")  # Display section title
@@ -262,7 +262,7 @@ def main():
         user_df = user_options[selected_user]  # Get the user's dataframe
 
         # Display content-based recommendations
-        display_content_based_recommendations(selected_user, user_id_options[selected_user], n=10)
+        display_content_based_recommendations(selected_user, user_id_options[selected_user], n=15)
         # Display latent factor model recommendations
         display_recommendations_latent_factor(selected_user, user_id_options[selected_user])
         # Display OtherUserBased recommendations
diff --git a/pages/Discover.py b/pages/Discover.py
index 009d1791..8fd70d11 100644
--- a/pages/Discover.py
+++ b/pages/Discover.py
@@ -22,7 +22,7 @@ def display_unrated_movies(df_ratings, merged_df):
     # Remove duplicate movies based on 'tmdbId'
     unique_unrated_movies_df = unrated_movies_df.drop_duplicates(subset='tmdbId')
     # Sort movies by 'tmdbId' in descending order and select the top 10
-    sorted_movies_df = unique_unrated_movies_df.sort_values(by='tmdbId', ascending=False).head(10)
+    sorted_movies_df = unique_unrated_movies_df.sort_values(by='tmdbId', ascending=False).head(15)
     cols_html = ""
     # Generate HTML for displaying each unrated movie
     for idx, row in sorted_movies_df.iterrows():
@@ -54,7 +54,7 @@ def display_movies_year(merged_df):
     # Sort movies by 'annee' (year of release) in descending order
     sorted_movies_df = unique_movies_df.sort_values(by='annee', ascending=False)
     # Select the top 10 movies based on TMDB ID
-    top_10_tmdbIds = sorted_movies_df['tmdbId'].head(10)
+    top_10_tmdbIds = sorted_movies_df['tmdbId'].head(15)
     # Generate HTML for displaying each new movie
     for tmdbId in top_10_tmdbIds:
         title_dict, poster_url = fetch_movie_info(tmdbId)
@@ -71,7 +71,7 @@ def display_movies_year(merged_df):
     </div>
     """, unsafe_allow_html=True)
 
-def display_movies_by_genre(df, num_movies=10):
+def display_movies_by_genre(df, num_movies=15):
     """
     Display sections for top movies by genre.
 
@@ -119,7 +119,7 @@ def main():
     # Display sections for new movies, unrated movies, and top movies by genre
     display_movies_year(filtered_movies)
     display_unrated_movies(df_ratings, filtered_movies)
-    display_movies_by_genre(filtered_movies, num_movies=10)
+    display_movies_by_genre(filtered_movies, num_movies=15)
 
 # Entry point for the script
 if __name__ == "__main__":
diff --git a/recommender.py b/recommender.py
index a89e4595..1b7ff0c4 100644
--- a/recommender.py
+++ b/recommender.py
@@ -166,7 +166,7 @@ class UserBased(AlgoBase):
 
         self.mean_ratings = mean_ratings
 
-    def get_top_n_pred_ub(self, testset, target_user, n=10):
+    def get_top_n_pred_ub(self, testset, target_user, n=15):
         """
         Get the top N predictions for a specific target user.
 
@@ -331,7 +331,7 @@ class RecommenderSystem_KNN :
         predictions = self.model.test(self.testset)
         return accuracy.mae(predictions)
 
-    def get_top_n_recommendations(self, userid, n=10):
+    def get_top_n_recommendations(self, userid, n=15):
         """
         Get the top N recommendations for a specific user.
 
@@ -477,7 +477,7 @@ class OtherUserBased:
         data = pd.read_csv(csv_file)
         return data['movieId'].unique()
 
-    def get_top_n_predictions_for_user(self, csv_file, n=10):
+    def get_top_n_predictions_for_user(self, csv_file, n=15):
         """
         Get the top N predictions for all users.
 
@@ -494,7 +494,7 @@ class OtherUserBased:
             for item_id in all_item_ids:
                 prediction = self.model.estimate(self.user_id, item_id)
                 predictions.append((item_id, prediction))
-            top_10_predictions = sorted(predictions, key=lambda x: x[1], reverse=True)[:10]
+            top_10_predictions = sorted(predictions, key=lambda x: x[1], reverse=True)[:15]
             return top_10_predictions  # Return the predictions here
 
 
@@ -686,7 +686,7 @@ def evaluate_inter_user_diversity(user_based_model, ratings_path, other_user_bas
     for user_id in range(user_based_model.trainset.n_users):
         try:
             trainset_user_id = user_based_model.trainset.to_raw_uid(user_id)
-            top_n_recommendations_ub = user_based_model.get_top_n_pred_ub(testset, target_user=trainset_user_id, n=10)
+            top_n_recommendations_ub = user_based_model.get_top_n_pred_ub(testset, target_user=trainset_user_id, n=15)
             all_top_n_recommendations_ub[trainset_user_id] = top_n_recommendations_ub
         except ValueError:
             print(f"User {trainset_user_id} is not part of the training set for UserBased model. Skipping...")
@@ -701,7 +701,7 @@ def evaluate_inter_user_diversity(user_based_model, ratings_path, other_user_bas
     for user_id in range(knn_model.trainset.n_users):
         try:
             trainset_user_id = knn_model.trainset.to_raw_uid(user_id)
-            top_n_recommendations_knn = knn_model.get_top_n_recommendations(trainset_user_id, n=10)
+            top_n_recommendations_knn = knn_model.get_top_n_recommendations(trainset_user_id, n=15)
             all_top_n_recommendations_knn[trainset_user_id] = top_n_recommendations_knn
         except ValueError:
             print(f"User {trainset_user_id} is not part of the training set for KNN model. Skipping...")
@@ -717,7 +717,7 @@ def evaluate_inter_user_diversity(user_based_model, ratings_path, other_user_bas
         all_user_ids = set(user for user, _, _ in testset)
         for user_id in all_user_ids:
             other_model.user_id = user_id  # Update the user ID for the model
-            top_n_predictions = other_model.get_top_n_predictions_for_user(ratings_path, n=10)
+            top_n_predictions = other_model.get_top_n_predictions_for_user(ratings_path, n=15)
             all_top_n_recommendations_other[user_id] = top_n_predictions
 
         inter_user_diversity_scores[f'Other_{other_model.user_name}'] = other_model.inter_user_diversity(all_top_n_recommendations_other)
@@ -741,7 +741,7 @@ other_user_based_models = [
 ###########################################################################################################################
 
 
-def get_top_n(predictions, user_id, n=10):
+def get_top_n(predictions, user_id, n=15):
     """
     Return the top-N recommendation for a specific user from a set of predictions.
     Args:
@@ -1007,7 +1007,7 @@ class LatentFactorModel:
             user_ratings.append((movie_id, prediction))
 
         sorted_ratings = sorted(user_ratings, key=lambda x: x[1], reverse=True)
-        top_10_ratings = sorted_ratings[:10]
+        top_10_ratings = sorted_ratings[:15]
 
         return top_10_ratings
 
-- 
GitLab