class_docstr: Search Light.
  
  Fit, predict and score a series of models to each subset of the dataset
  along the last dimension. Each entry in the last dimension is referred
  to as a task.
  
  Parameters
  ----------
  %(base_estimator)s
  %(scoring)s
  %(n_jobs)s
  %(position)s
  %(allow_2d)s
  %(verbose)s
  
  Attributes
  ----------
  estimators_ : array-like, shape (n_tasks,)
      List of fitted scikit-learn estimators (one per task).
class_docstr_tok: ["Search","Light",".","Fit",",","predict","and","score","a","series","of","models","to","each","subset","of","the","dataset","along","the","last","dimension",".","Each","entry","in","the","last","dimension","is","referred","to","as","a","task",".","Parameters","--","--","--","--","--","%","(","base_estimator",")","s","%","(","scoring",")","s","%","(","n_jobs",")","s","%","(","position",")","s","%","(","allow_2d",")","s","%","(","verbose",")","s","Attributes","--","--","--","--","--","estimators_",":","array-like",",","shape","(","n_tasks",",",")","List","of","fitted","scikit-learn","estimators","(","one","per","task",")","."]
docstr: Fit a series of independent estimators to the dataset.
  
  Parameters
  ----------
  X : array, shape (n_samples, nd_features, n_tasks)
      The training input samples. For each data slice, a clone estimator
      is fitted independently. The feature dimension can be
      multidimensional e.g.
      X.shape = (n_samples, n_features_1, n_features_2, n_tasks).
  y : array, shape (n_samples,) | (n_samples, n_targets)
      The target values.
  **fit_params : dict of string -> object
      Parameters to pass to the fit method of the estimator.
  
  Returns
  -------
  self : object
      Return self.
code: def fit(self, X, y, **fit_params):
      """Fit a series of independent estimators to the dataset.
  
      Parameters
      ----------
      X : array, shape (n_samples, nd_features, n_tasks)
          The training input samples. For each data slice, a clone estimator
          is fitted independently. The feature dimension can be
          multidimensional e.g.
          X.shape = (n_samples, n_features_1, n_features_2, n_tasks).
      y : array, shape (n_samples,) | (n_samples, n_targets)
          The target values.
      **fit_params : dict of string -> object
          Parameters to pass to the fit method of the estimator.
  
      Returns
      -------
      self : object
          Return self.
      """
      X = self._check_Xy(X, y)
      parallel, p_func, n_jobs = parallel_func(
          _sl_fit, self.n_jobs, max_jobs=X.shape[-1], verbose=False
      )
      self.estimators_ = list()
      self.fit_params_ = fit_params
  
      # For fitting, the parallelization is across estimators.
      context = _create_progressbar_context(self, X, "Fitting")
      with context as pb:
          estimators = parallel(
              p_func(
                  self.base_estimator,
                  split,
                  y,
                  pb.subset(pb_idx),
                  **fit_params,
              )
              for pb_idx, split in array_split_idx(X, n_jobs, axis=-1)
          )
  
      # Each parallel job can have a different number of training estimators
      # We can't directly concatenate them because of sklearn's Bagging API
      # (see scikit-learn #9720)
      self.estimators_ = np.empty(X.shape[-1], dtype=object)
      idx = 0
      for job_estimators in estimators:
          for est in job_estimators:
              self.estimators_[idx] = est
              idx += 1
      return self
  
imports: import logging
  import numpy
  from ..fixes import _get_check_scoring
  from ..parallel import parallel_func
  from ..utils import ProgressBar, _parse_verbose, array_split_idx, fill_doc, verbose
  from .base import BaseEstimator, _check_estimator
  from .mixin import TransformerMixin
label_desc: Use image node_id 5 for calling the SlidingEstimator obj's underlying member method code with example usage: obj.fit(X, y) and returns: self