class_docstr: Base class for NMF and MiniBatchNMF.
class_docstr_tok: ["Base","class","for","NMF","and","MiniBatchNMF","."]
code: def _more_tags(self):
      return {
          "requires_positive_X": True,
          "preserves_dtype": [np.float64, np.float32],
      }
  
imports: import itertools
  import time
  import warnings
  from abc import ABC
  from math import sqrt
  from numbers import Integral, Real
  import numpy
  import scipy.sparse
  from scipy import linalg
  from .._config import config_context
  from ..base import BaseEstimator, ClassNamePrefixFeaturesOutMixin, TransformerMixin, _fit_context
  from ..exceptions import ConvergenceWarning
  from ..utils import check_array, check_random_state, gen_batches, metadata_routing
  from ..utils._param_validation import Hidden, Interval, StrOptions, validate_params
  from ..utils.extmath import randomized_svd, safe_sparse_dot, squared_norm
  from ..utils.validation import check_is_fitted, check_non_negative
  from ._cdnmf_fast import _update_cdnmf_fast
label_desc: Use image node_id 8 for calling the _BaseNMF obj's underlying member method code with example usage: obj._more_tags() and returns: dict