class_docstr: BinnedFeatureGenerator bins incoming int and float features to num_bins unique int values, maintaining relative rank order.
class_docstr_tok: ["BinnedFeatureGenerator","bins","incoming","int","and","float","features","to","num_bins","unique","int","values",",","maintaining","relative","rank","order","."]
code: def _fit_transform(self, X: DataFrame, **kwargs) -> (DataFrame, dict):
      self._bin_map = self._get_bin_map(X=X)
      self._astype_map = {
          feature: get_smallest_valid_dtype_int(
              min_val=0, max_val=len(bin_index)
          )
          for feature, bin_index in self._bin_map.items()
      }
      X_out = self._transform(X)
      type_group_map_special = copy.deepcopy(
          self.feature_metadata_in.type_group_map_special
      )
      type_group_map_special[S_BINNED] += list(X_out.columns)
      return X_out, type_group_map_special
  
file_path: autogluon/features/src/autogluon/features/generators/binned.py
imports: import copy
  import logging
  import pandas
  from pandas import DataFrame
  from autogluon.common.features.types import R_FLOAT, R_INT, S_BINNED
  from ..None import binning
  from ..utils import get_smallest_valid_dtype_int
  from .abstract import AbstractFeatureGenerator
label_desc: Use image node_id 2 for calling the BinnedFeatureGenerator obj's underlying member method code with example usage: obj._fit_transform(X) and returns: X_out,  type_group_map_special