code: def fit(self, input_data: InputData):
      input_data = input_data.get_not_encoded_data()
  
      if self.params.get("use_eval_set"):
          # TODO: Using this method for tuning
          train_input, eval_input = train_test_data_setup(input_data)
  
          train_input = self.convert_to_pool(train_input)
          eval_input = self.convert_to_pool(eval_input)
  
          self.model.fit(X=train_input, eval_set=eval_input)
  
      else:
          train_input = self.convert_to_pool(input_data)
  
          self.model.fit(train_input)
  
      return self.model
  
imports: import os
  from typing import Optional
  import numpy
  import pandas
  from catboost import CatBoostClassifier, CatBoostRegressor, Pool
  from matplotlib import pyplot
  from fedot.core.data.data import InputData
  from fedot.core.data.data_split import train_test_data_setup
  from fedot.core.operations.evaluation.operation_implementations.implementation_interfaces import ModelImplementation
  from fedot.core.operations.operation_parameters import OperationParameters
  from fedot.core.utils import default_fedot_data_dir
label_desc: Use image node_id 2 for calling the FedotCatBoostImplementation obj's underlying member method code with example usage: obj.fit(input_data) and returns: self