code: def get_hyperparameter_search_space(
      feat_type: Optional[FEAT_TYPE_TYPE] = None,
      dataset_properties=None,
  ):
      alpha = UniformFloatHyperparameter(
          name="alpha", lower=0.01, upper=0.5, default_value=0.1
      )
  
      if dataset_properties is not None and dataset_properties.get(
          "sparse"
      ):
          choices = ["chi2", "mutual_info_classif"]
      else:
          choices = ["chi2", "f_classif", "mutual_info_classif"]
  
      score_func = CategoricalHyperparameter(
          name="score_func", choices=choices, default_value="chi2"
      )
  
      mode = CategoricalHyperparameter(
          "mode", ["fpr", "fdr", "fwe"], "fpr"
      )
  
      cs = ConfigurationSpace()
      cs.add_hyperparameter(alpha)
      cs.add_hyperparameter(score_func)
      cs.add_hyperparameter(mode)
  
      # mutual_info_classif constantly crashes if mode is not percentile
      # as a WA, fix the mode for this score
      cond = NotEqualsCondition(mode, score_func, "mutual_info_classif")
      cs.add_condition(cond)
  
      return cs
  
file_path: auto-sklearn/autosklearn/pipeline/components/feature_preprocessing/select_rates_classification.py
imports: from typing import Optional
  from functools import partial
  from ConfigSpace import NotEqualsCondition
  from ConfigSpace.configuration_space import ConfigurationSpace
  from ConfigSpace.hyperparameters import CategoricalHyperparameter, UniformFloatHyperparameter
  from autosklearn.askl_typing import FEAT_TYPE_TYPE
  from autosklearn.pipeline.components.base import AutoSklearnPreprocessingAlgorithm
  from autosklearn.pipeline.constants import DENSE, INPUT, SIGNED_DATA, SPARSE, UNSIGNED_DATA
label_desc: Use image node_id 5 for calling the SelectClassificationRates obj's underlying member method code with example usage: obj.get_hyperparameter_search_space(feat_type, dataset_properties) and returns: cs