Advertisement
Guest User

Untitled

a guest
May 15th, 2022
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.77 KB | None | 0 0
  1. import time
  2.  
  3. start = time.time()
  4. print("hello")
  5.  
  6.  
  7. # Code to create a DF with the right shape (NxN) and initializing each cell to 0
  8. similarity_matrix = cosine_similarity(df_ratings_dummy, df_ratings_dummy)
  9. similarity_matrix_df = pd.DataFrame(similarity_matrix, index=df_ratings.index, columns=df_ratings.index)
  10. similarity_matrix_df[:] = 0
  11.  
  12.  
  13.  
  14. sim_score = 0
  15. for user1_id, row in similarity_matrix_df.iterrows(): #iterate over rows
  16.     print("Calculating sim column for user_id: " + str(user1_id))
  17.     for user2_id, value in row.items():
  18.        
  19.        
  20.         if(user1_id == user2_id):
  21.             similarity_matrix_df[user1_id][user2_id] = 1
  22.         else:
  23.             #Step 1: Get co-rated items between user1 and user 2
  24.             user1_user2_df = df_ratings.loc[[user1_id, user2_id]]
  25.             all_rated_items = user1_user2_df[user1_user2_df.columns[~user1_user2_df.isnull().all()]]
  26.             co_rated_items = all_rated_items.dropna(axis=1)
  27.  
  28.             #Step 2: For each co-rated item, calc the sim using PIP
  29.             #Step 3: Loop over each co-rated item/movie, and calculate the sim using user1_rating and user2_rating
  30.             for movie_id in co_rated_items.columns:
  31.                 mu_k = df_ratings[movie_id].mean()
  32.                 user1_rating = co_rated_items[movie_id][user1_id]
  33.                 user2_rating = co_rated_items[movie_id][user2_id]
  34.                
  35.                 pip = proximity(user1_rating, user2_rating) * impact(user1_rating, user2_rating) * popularity(user1_rating, user2_rating, mu_k)
  36.                 sim_score = sim_score + pip
  37.  
  38.             similarity_matrix_df[user1_id][user2_id] = sim_score
  39.             #Step 4: Reset the sim_score
  40.             sim_score = 0
  41.        
  42.        
  43. end = time.time()
  44. print(end - start)
  45.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement