docstr: Get parameter names for the estimator
  
  adapted from
  https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/base.py
  Author: Gael Varoquaux <gael.varoquaux@normalesup.org>
  License: BSD 4 clause
code: def _get_param_names(cls):
      """Get parameter names for the estimator
  
      adapted from
      https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/base.py
      Author: Gael Varoquaux <gael.varoquaux@normalesup.org>
      License: BSD 4 clause
  
  
  
      """
      # fetch the constructor or the original constructor before
      # deprecation wrapping if any
      init = getattr(cls.__init__, "deprecated_original", cls.__init__)
      if init is object.__init__:
          # No explicit constructor to introspect
          return []
  
      # introspect the constructor arguments to find the model parameters
      # to represent
      init_signature = signature(init)
      # Consider the constructor parameters excluding 'self'
      parameters = [
          p
          for p in init_signature.parameters.values()
          if p.name != "self" and p.kind != p.VAR_KEYWORD
      ]
      for p in parameters:
          if p.kind == p.VAR_POSITIONAL:
              raise RuntimeError(
                  "scikit-learn estimators should always "
                  "specify their parameters in the signature"
                  " of their __init__ (no varargs)."
                  " %s with constructor %s doesn't "
                  " follow this convention." % (cls, init_signature)
              )
      # Extract and sort argument names excluding 'self'
      return sorted([p.name for p in parameters])
  
file_path: mlxtend/mlxtend/_base/_base_model.py
imports: from collections import defaultdict
  from time import time
label_desc: Use image node_id 3 for calling the _BaseModel obj's underlying member method code with example usage: obj._get_param_names(cls) and returns: sorted, list