class_docstr: Handles parameter management for classifiers composed of named estimators.
      
code: def _replace_estimator(self, attr, name, new_val):
      # assumes `name` is a valid estimator name
      new_estimators = list(getattr(self, attr))
      for i, (estimator_name, _) in enumerate(new_estimators):
          if estimator_name == name:
              new_estimators[i] = (name, new_val)
              break
      setattr(self, attr, new_estimators)
  
file_path: cuml/python/cuml/_thirdparty/sklearn/utils/skl_dependencies.py
imports: from cuml.internals.array_sparse import SparseCumlArray
  from ....internals.base import Base
  from ..utils.validation import check_X_y
  from ....thirdparty_adapters import check_array
label_desc: Use image node_id 3 for calling the BaseComposition obj's underlying member method code with example usage: obj._replace_estimator(attr, name, new_val) without return types