code: def fit(self, X, y=None):
      print("Performing feature scaling")
      self.column_ranges = {}
      self.cols_to_ignore = []
  
      if self.perform_feature_scaling:
          for col in X.columns:
              if col not in self.cols_to_avoid:
                  col_summary = calculate_scaling_ranges(
                      X,
                      col,
                      min_percentile=self.min_percentile,
                      max_percentile=self.max_percentile,
                  )
                  if col_summary == "ignore":
                      self.cols_to_ignore.append(col)
                  elif col_summary == "pass_on_col":
                      pass
                  else:
                      self.column_ranges[col] = col_summary
  
      return self
  
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 3 for calling the CustomSparseScaler obj's underlying member method code with example usage: obj.fit(X, y) and returns: self