docstr: 1: Item KNN
  2: User KNN
  3: Matrix Factorization
  4: SVD++
docstr_tok: ["1",":","Item","KNN","2",":","User","KNN","3",":","Matrix","Factorization","4",":","SVD++"]
code: def run_recommenders(self, r):
      """
      1: Item KNN
      2: User KNN
      3: Matrix Factorization
      4: SVD++
      """
  
      flag = True
  
      if not self.unlabeled_data[r]:
          flag = False
  
          return [], flag
  
      else:
          if r == 1:
              rec = ItemKNN(
                  self.labeled_files[r],
                  self.unlabeled_files[r],
                  as_similar_first=True,
              )
              rec.read_files()
              rec.init_model()
              rec.train_baselines()
              rec.predict()
              self.recommenders_predictions.setdefault(
                  r, rec.predictions
              )
          elif r == 2:
              rec = UserKNN(
                  self.labeled_files[r], self.unlabeled_files[r]
              )
              rec.read_files()
              rec.init_model()
              rec.train_baselines()
              rec.predict()
              self.recommenders_predictions.setdefault(
                  r, rec.predictions
              )
          elif r == 3:
              rec = MatrixFactorization(
                  self.labeled_files[r],
                  self.unlabeled_files[r],
                  random_seed=1,
                  baseline=True,
              )
              rec.read_files()
              rec.init_model()
              rec.fit()
              rec.predict()
              self.recommenders_predictions.setdefault(
                  r, rec.predictions
              )
          elif r == 4:
              rec = SVDPlusPlus(
                  self.labeled_files[r],
                  self.unlabeled_files[r],
                  random_seed=1,
              )
              rec.read_files()
              rec.fit()
              rec.predict()
              self.recommenders_predictions.setdefault(
                  r, rec.predictions
              )
  
          else:
              raise NameError("Invalid Recommender!")
  
          return rec.predictions, flag
  
imports: from multiprocessing.pool import Pool
  from random import shuffle
  import numpy
  import os
  from caserec.recommenders.rating_prediction.itemknn import ItemKNN
  from caserec.recommenders.rating_prediction.matrixfactorization import MatrixFactorization
  from caserec.recommenders.rating_prediction.svdplusplus import SVDPlusPlus
  from caserec.recommenders.rating_prediction.userknn import UserKNN
  from caserec.utils.process_data import ReadFile
  from caserec.utils.extra_functions import ComputeBui
label_desc: Use image node_id 16 for calling the ECoRec obj's underlying member method code with example usage: obj.run_recommenders(r) and returns: list,  flag, rec,  flag