code: def fit(self, X: np.ndarray, Y: np.ndarray) -> None:
      X, Y = shape_into_2d(X, Y)
  
      if Y.shape[1] > 1:
          raise RuntimeError(
              "%s supports currently only one dimensional target variables!"
          )
  
      self._feature_names = ["X" + str(i) for i in range(X.shape[1])]
      self._auto_gluon_model.fit(
          pd.concat(
              [
                  pd.DataFrame(X, columns=self._feature_names),
                  pd.DataFrame(Y, columns=self._target_column),
              ],
              axis=1,
          ),
          **self._fit_parameters,
      )
  
      if self._model_persistence_max_memory is not None:
          self._auto_gluon_model.persist_models(
              max_memory=self._model_persistence_max_memory
          )
      else:
          self._auto_gluon_model.persist_models()
  
imports: from typing import Any, Dict, List, Optional
  import numpy
  import pandas
  from autogluon import tabular
  from autogluon.tabular.configs.hyperparameter_configs import get_hyperparameter_config
  from packaging import version
  from dowhy.gcm.ml import ClassificationModel, PredictionModel
  from dowhy.gcm.util.general import shape_into_2d
label_desc: Use image node_id 2 for calling the _AutoGluonModel obj's underlying member method code with example usage: obj.fit(X, Y) without return types