code: def __init__(
      self,
      column_descriptions,
      truncate_large_values=False,
      perform_feature_scaling=True,
      min_percentile=0.05,
      max_percentile=0.95,
  ):
      self.column_descriptions = column_descriptions
  
      self.numeric_col_descs = set(
          [None, "continuous", "numerical", "numeric", "float", "int"]
      )
      # Everything in column_descriptions (except numeric_col_descs) is a non-numeric column, and thus, cannot be scaled
      self.cols_to_avoid = set(
          [
              k
              for k, v in column_descriptions.items()
              if v not in self.numeric_col_descs
          ]
      )
  
      # Setting these here so that they can be grid searchable
      # Truncating large values is an interesting strategy. It forces all values to fit inside the 5th - 95th percentiles.
      # Essentially, it turns any really large (or small) values into reasonably large (or small) values.
      self.truncate_large_values = truncate_large_values
      self.perform_feature_scaling = perform_feature_scaling
      self.min_percentile = min_percentile
      self.max_percentile = max_percentile
  
file_path: auto_ml/auto_ml/utils_scaling.py
imports: from sklearn.base import BaseEstimator, TransformerMixin
  from auto_ml import utils
label_desc: Use image node_id 1 to create a new CustomSparseScaler object from inherited base classes: BaseEstimator, TransformerMixin with example: obj = CustomSparseScaler(column_descriptions, truncate_large_values, perform_feature_scaling, min_percentile, max_percentile)