docstr: Method to predict a rank for each user. In this implementation, for each unknown item,
  which will be predicted, we first look for users that seen that item and calculate the similarity between them
  and the user. Then we sort these similarities and get the most similar k's. Finally, the score of the
  unknown item will be the sum of the similarities.
docstr_tok: ["Method","to","predict","a","rank","for","each","user",".","In","this","implementation",",","for","each","unknown","item",",","which","will","be","predicted",",","we","first","look","for","users","that","seen","that","item","and","calculate","the","similarity","between","them","and","the","user",".","Then","we","sort","these","similarities","and","get","the","most","similar","k","'s",".","Finally",",","the","score","of","the","unknown","item","will","be","the","sum","of","the","similarities","."]
code: def predict_scores(self, user, user_id, unpredicted_items):
      """
      Method to predict a rank for each user. In this implementation, for each unknown item,
      which will be predicted, we first look for users that seen that item and calculate the similarity between them
      and the user. Then we sort these similarities and get the most similar k's. Finally, the score of the
      unknown item will be the sum of the similarities.
  
      """
  
      predictions = []
      for item_id in unpredicted_items:
          item = self.items[item_id]
          sim_sum = []
          for user_v in self.users_id_viewed_item.get(item, []):
              sim_sum.append(self.su_matrix[user_id, user_v])
          sim_sum = sorted(sim_sum, reverse=True)
  
          predictions.append(
              (user, item, sum(sim_sum[: self.k_neighbors]))
          )
  
      return sorted(predictions, key=lambda x: -x[2])[
          : self.rank_length
      ]
  
file_path: CaseRecommender/caserec/recommenders/item_recommendation/userknn.py
imports: import numpy
  from caserec.recommenders.item_recommendation.base_item_recommendation import BaseItemRecommendation
  from caserec.utils.extra_functions import timed
label_desc: Use image node_id 4 for calling the UserKNN obj's underlying member method code with example usage: obj.predict_scores(user, user_id, unpredicted_items) and returns: sorted