code: def compute(
      self,
      verbose=True,
      metrics=None,
      verbose_evaluation=True,
      as_table=False,
      table_sep="\t",
  ):
      if verbose:
          print(
              "[Case Recommender: Item Recommendation > %s]\n"
              % self.recommender_name
          )
  
      self.read_files()
      self.build_distance_matrix()
      self.generate_groups()
      self.generate_recommendation()
  
      if verbose:
          print(
              "GroupBased:: Final K value for kmedoids: %d"
              % self.k_groups
          )
  
      self.write_ranking()
  
      if self.test_file is not None:
          self.evaluate(
              metrics,
              verbose_evaluation,
              as_table=as_table,
              table_sep=table_sep,
          )
  
imports: from scipy.spatial.distance import squareform, pdist
  import numpy
  import os
  from caserec.clustering.kmedoids import kmedoids
  from caserec.recommenders.item_recommendation.base_item_recommendation import BaseItemRecommendation
  from caserec.recommenders.item_recommendation.itemknn import ItemKNN
  from caserec.recommenders.item_recommendation.most_popular import MostPopular
  from caserec.recommenders.item_recommendation.userknn import UserKNN
  from caserec.utils.process_data import ReadFile, WriteFile
  from caserec.recommenders.item_recommendation.bprmf import BprMF
label_desc: Use image node_id 9 for calling the GroupBasedRecommender obj's underlying member method code with example usage: obj.compute(verbose, metrics, verbose_evaluation, as_table, table_sep) without return types