code: def create(
      name, learning_task
  ):  # pylint: disable=too-many-return-statements
      if name == "xgb":
          return XgbAlgorithm(learning_task)
      if name == "lgbm":
          return LgbmAlgorithm(learning_task)
      if name == "rf":
          return RandomForestAlgorithm(learning_task)
      raise ValueError("Unknown algorithm: " + name)
  
imports: from abc import ABC, abstractmethod
  import lightgbm
  import numpy
  from sklearn.ensemble import RandomForestClassifier, RandomForestRegressor
  import xgboost
  from benchmarks.timer import Timer
  from benchmarks.datasets import LearningTask
label_desc: Use image node_id 1 for calling the TrainEnsembleAlgorithm obj's underlying member method code with example usage: obj.create(name, learning_task) and returns: XgbAlgorithm, LgbmAlgorithm, RandomForestAlgorithm