class_docstr: Base class for LensKit algorithms.  These algorithms follow the SciKit design pattern
  for estimators.
  
  :canonical: lenskit.Algorithm
class_docstr_tok: ["Base","class","for","LensKit","algorithms",".","These","algorithms","follow","the","SciKit","design","pattern","for","estimators",".",":","canonical",":","lenskit.Algorithm"]
docstr: Get the parameters for this algorithm (as in scikit-learn).  Algorithm parameters
  should match constructor argument names.
  
  The default implementation returns all attributes that match a constructor parameter
  name.  It should be compatible with :py:meth:`sklearn.base.BaseEstimator.get_params`
  method so that LensKit alogrithms can be cloned with :py:func:`sklearn.base.clone`
  as well as :py:func:`lenskit.util.clone`.
  
  Returns:
      dict: the algorithm parameters.
docstr_tok: ["Get","the","parameters","for","this","algorithm","(","as","in","scikit-learn",")",".","Algorithm","parameters","should","match","constructor","argument","names",".","The","default","implementation","returns","all","attributes","that","match","a","constructor","parameter","name",".","It","should","be","compatible","with",":","py",":","meth",":","`","sklearn.base.BaseEstimator.get_params","`","method","so","that","LensKit","alogrithms","can","be","cloned","with",":","py",":","func",":","`","sklearn.base.clone","`","as","well","as",":","py",":","func",":","`","lenskit.util.clone","`",".","Returns",":","dict",":","the","algorithm","parameters","."]
code: def get_params(self, deep=True):
      """
      Get the parameters for this algorithm (as in scikit-learn).  Algorithm parameters
      should match constructor argument names.
  
      The default implementation returns all attributes that match a constructor parameter
      name.  It should be compatible with :py:meth:`sklearn.base.BaseEstimator.get_params`
      method so that LensKit alogrithms can be cloned with :py:func:`sklearn.base.clone`
      as well as :py:func:`lenskit.util.clone`.
  
      Returns:
          dict: the algorithm parameters.
      """
      sig = inspect.signature(self.__class__)
      names = list(sig.parameters.keys()) + self.EXTRA_PARAMS
      params = {}
      for name in names:
          if hasattr(self, name) and name not in self.IGNORED_PARAMS:
              value = getattr(self, name)
              params[name] = value
              if deep and hasattr(value, "get_params"):
                  sps = value.get_params(deep)
                  for k, sv in sps.items():
                      params[name + "__" + k] = sv
  
      return params
  
file_path: lkpy/lenskit/algorithms/__init__.py
imports: from abc import ABCMeta, abstractmethod
  import inspect
label_desc: Use image node_id 2 for calling the Algorithm obj's underlying member method code with example usage: obj.get_params(deep) and returns: params