code: def mrr_score(model, test, train=None):
      """
      Compute mean reciprocal rank (MRR) scores. One score
      is given for every user with interactions in the test
      set, representing the mean reciprocal rank of all their
      test items.
  
      Parameters
      ----------
  
      model: fitted instance of a recommender model
          The model to evaluate.
      test: :class:`spotlight.interactions.Interactions`
          Test interactions.
      train: :class:`spotlight.interactions.Interactions`, optional
          Train interactions. If supplied, scores of known
          interactions will be set to very low values and so not
          affect the MRR.
  
      Returns
      -------
  
      mrr scores: numpy array of shape (num_users,)
          Array of MRR scores for each user in test.
      """
  
      test = test.tocsr()
  
      if train is not None:
          train = train.tocsr()
  
      mrrs = []
  
      for user_id, row in enumerate(test):
          if not len(row.indices):
              continue
  
          predictions = -model.predict(user_id)
  
          if train is not None:
              predictions[train[user_id].indices] = FLOAT_MAX
  
          mrr = (1.0 / st.rankdata(predictions)[row.indices]).mean()
  
          mrrs.append(mrr)
  
      return np.array(mrrs)
  
imports: import numpy
  import scipy.stats
label_desc: Use image node_id 1 for calling a global function with example usage: mrr_score(model, test, train) and returns: np