code: def fit(self, X, y):
      import scipy.sparse
      import sklearn.feature_selection
  
      self.preprocessor = sklearn.feature_selection.SelectPercentile(
          score_func=self.score_func,
          percentile=self.percentile,
      )
  
      # Because the pipeline guarantees that each feature is positive,
      # clip all values below zero to zero
      if self.score_func == sklearn.feature_selection.chi2:
          if scipy.sparse.issparse(X):
              X.data[X.data < 0] = 0.0
          else:
              X[X < 0] = 0.0
  
      self.preprocessor.fit(X, y)
      return self
  
file_path: auto-sklearn/autosklearn/pipeline/components/feature_preprocessing/select_percentile_classification.py
imports: from typing import Optional
  from functools import partial
  from ConfigSpace.configuration_space import ConfigurationSpace
  from ConfigSpace.hyperparameters import CategoricalHyperparameter, Constant, UniformFloatHyperparameter
  from autosklearn.askl_typing import FEAT_TYPE_TYPE
  from autosklearn.pipeline.components.base import AutoSklearnPreprocessingAlgorithm
  from autosklearn.pipeline.components.feature_preprocessing.select_percentile import SelectPercentileBase
  from autosklearn.pipeline.constants import DENSE, INPUT, SIGNED_DATA, SPARSE, UNSIGNED_DATA
label_desc: Use image node_id 2 for calling the SelectPercentileClassification obj's underlying member method code with example usage: obj.fit(X, y) and returns: self