class_docstr: LightGBM model: https://lightgbm.readthedocs.io/en/latest/
  
  Hyperparameter options: https://lightgbm.readthedocs.io/en/latest/Parameters.html
  
  Extra hyperparameter options:
      ag.early_stop : int, specifies the early stopping rounds. Defaults to an adaptive strategy. Recommended to keep default.
class_docstr_tok: ["LightGBM","model",":","https",":","\/\/lightgbm.readthedocs.io\/en\/latest\/","Hyperparameter","options",":","https",":","\/\/lightgbm.readthedocs.io\/en\/latest\/Parameters.html","Extra","hyperparameter","options",":","ag.early_stop",":","int",",","specifies","the","early","stopping","rounds",".","Defaults","to","an","adaptive","strategy",".","Recommended","to","keep","default","."]
code: def _preprocess_nonadaptive(self, X, is_train=False, **kwargs):
      X = super()._preprocess_nonadaptive(X=X, **kwargs)
  
      if is_train:
          self._requires_remap = False
          for column in X.columns:
              if isinstance(column, str):
                  new_column = re.sub(r'[",:{}[\]]', "", column)
                  if new_column != column:
                      self._features_internal_map = {
                          feature: i
                          for i, feature in enumerate(list(X.columns))
                      }
                      self._requires_remap = True
                      break
          if self._requires_remap:
              self._features_internal_list = np.array(
                  [
                      self._features_internal_map[feature]
                      for feature in list(X.columns)
                  ]
              )
          else:
              self._features_internal_list = self._features_internal
  
      if self._requires_remap:
          X_new = X.copy(deep=False)
          X_new.columns = self._features_internal_list
          return X_new
      else:
          return X
  
imports: import gc
  import logging
  import os
  import random
  import re
  import time
  import warnings
  import numpy
  from pandas import DataFrame, Series
  from autogluon.common.features.types import R_BOOL, R_CATEGORY, R_FLOAT, R_INT
  from autogluon.common.utils.pandas_utils import get_approximate_df_mem_usage
  from autogluon.common.utils.resource_utils import ResourceManager
  from autogluon.common.utils.try_import import try_import_lightgbm
  from autogluon.core.constants import BINARY, MULTICLASS, QUANTILE, REGRESSION, SOFTCLASS
  from autogluon.core.models import AbstractModel
  from autogluon.core.models._utils import get_early_stopping_rounds
  from .None import lgb_utils
  from .hyperparameters.parameters import DEFAULT_NUM_BOOST_ROUND, get_lgb_objective, get_param_baseline
  from .hyperparameters.searchspaces import get_default_searchspace
  from .lgb_utils import construct_dataset, train_lgb_model
label_desc: Use image node_id 8 for calling the LGBModel obj's underlying member method code with example usage: obj._preprocess_nonadaptive(X, is_train) and returns: X_new, X