class_docstr: Use unsupervised spatial filtering across time and samples.
  
  Parameters
  ----------
  estimator : instance of sklearn.base.BaseEstimator
      Estimator using some decomposition algorithm.
  average : bool, default False
      If True, the estimator is fitted on the average across samples
      (e.g. epochs).
code: def __init__(self, estimator, average=False):
      # XXX: Use _check_estimator #3381
      for attr in ("fit", "transform", "fit_transform"):
          if not hasattr(estimator, attr):
              raise ValueError(
                  "estimator must be a scikit-learn "
                  "transformer, missing %s method" % attr
              )
  
      if not isinstance(average, bool):
          raise ValueError(
              "average parameter must be of bool type, got "
              "%s instead" % type(bool)
          )
  
      self.estimator = estimator
      self.average = average
  
imports: import numpy
  from .._fiff.pick import _pick_data_channels, _picks_by_type, _picks_to_idx, pick_info, pick_types
  from ..cov import _check_scalings_user
  from ..filter import filter_data
  from ..time_frequency import psd_array_multitaper
  from ..utils import _check_option, _validate_type, fill_doc, verbose
  from .base import BaseEstimator
  from .mixin import TransformerMixin
label_desc: Use image node_id 1 to create a new UnsupervisedSpatialFilter object from inherited base classes: TransformerMixin, BaseEstimator with example: obj = UnsupervisedSpatialFilter(estimator, average)