code: def fit(self, X, y=None):
      if (
          self._convert_method == PreprocessingCategorical.CONVERT_LOO
          and self._columns
      ):
          self._enc = LooEncoder(cols=self._columns)
          self._enc.fit(X, y)
      else:
          self._fit_categorical_convert(X)
  
file_path: mljar-supervised/supervised/preprocessing/preprocessing_categorical.py
imports: import json
  import os
  import numpy
  import pandas
  from supervised.preprocessing.label_binarizer import LabelBinarizer
  from supervised.preprocessing.label_encoder import LabelEncoder
  from supervised.preprocessing.loo_encoder import LooEncoder
  from supervised.preprocessing.preprocessing_utils import PreprocessingUtils
label_desc: Use image node_id 2 for calling the PreprocessingCategorical obj's underlying member method code with example usage: obj.fit(X, y) without return types