class_docstr: Base class for all estimators in scikit-learn.
  
  Notes
  -----
  All estimators should specify all the parameters that can be set
  at the class level in their ``__init__`` as explicit keyword
  arguments (no ``*args`` or ``**kwargs``).
class_docstr_tok: ["Base","class","for","all","estimators","in","scikit-learn",".","Notes","--","--","-","All","estimators","should","specify","all","the","parameters","that","can","be","set","at","the","class","level","in","their","``","__init__","``","as","explicit","keyword","arguments","(","no","``","*","args","``","or","``","*","*","kwargs","``",")","."]
code: def _get_tags(self):
      collected_tags = {}
      for base_class in reversed(inspect.getmro(self.__class__)):
          if hasattr(base_class, "_more_tags"):
              # need the if because mixins might not have _more_tags
              # but might do redundant work in estimators
              # (i.e. calling more tags on BaseEstimator multiple times)
              more_tags = base_class._more_tags(self)
              collected_tags.update(more_tags)
      return collected_tags
  
imports: import inspect
  import operator
  import os
  import warnings
  from contextlib import contextmanager
  from io import StringIO
  from math import log
  from pprint import pprint
  import numpy
label_desc: Use image node_id 6 for calling the BaseEstimator obj's underlying member method code with example usage: obj._get_tags() and returns: collected_tags