code: def get_hyperparameter_search_space(
      feat_type: Optional[FEAT_TYPE_TYPE] = None,
      dataset_properties=None,
  ):
      cs = ConfigurationSpace()
      solver = CategoricalHyperparameter(
          name="solver",
          choices=["svd", "lsqr", "eigen"],
          default_value="svd",
      )
      shrinkage = UniformFloatHyperparameter(
          name="shrinkage", lower=0.0, upper=1.0, default_value=0.5
      )
      tol = UniformFloatHyperparameter(
          name="tol", lower=0.0001, upper=1, default_value=0.0001
      )
      cs.add_hyperparameters([solver, shrinkage, tol])
      shrinkage_condition = InCondition(
          shrinkage, solver, ["lsqr", "eigen"]
      )
      cs.add_condition(shrinkage_condition)
      return cs
  
imports: from typing import Optional
  from pprint import pprint
  from ConfigSpace.configuration_space import ConfigurationSpace
  from ConfigSpace.hyperparameters import UniformFloatHyperparameter, CategoricalHyperparameter
  from ConfigSpace.conditions import InCondition
  import sklearn.metrics
  from autosklearn.askl_typing import FEAT_TYPE_TYPE
  import autosklearn.classification
  import autosklearn.pipeline.components.feature_preprocessing
  from autosklearn.pipeline.components.base import AutoSklearnPreprocessingAlgorithm
  from autosklearn.pipeline.constants import DENSE, SIGNED_DATA, UNSIGNED_DATA
  from autosklearn.util.common import check_none
  from sklearn.datasets import load_breast_cancer
  from sklearn.model_selection import train_test_split
label_desc: Use image node_id 5 for calling the LDA obj's underlying member method code with example usage: obj.get_hyperparameter_search_space(feat_type, dataset_properties) and returns: cs