'Incrementally fit the model to data.
Fit a separate model for each output variable.
Parameters
X : (sparse) array-like, shape (n_samples, n_features)
Data.
y : (sparse) array-like, shape (n_samples, n_outputs)
Multi-output targets.
classes : list of numpy arrays, shape (n_outputs)
Each array is unique classes for one output in str/int
Can be obtained by via
``[np.unique(y[:, i]) for i in range(y.shape[1])]``, where y is the
target matrix of the entire dataset.
This argument is required for the first call to partial_fit
and can be omitted in the subsequent calls.
Note that y doesn\'t need to contain all labels in `classes`.
sample_weight : array-like, shape = (n_samples) or None
Sample weights. If None, then samples are equally weighted.
Only supported if the underlying regressor supports sample
weights.
Returns
self : object
Returns self.'

@if_delegate_has_method('estimator')
def partial_fit(self, X, y, classes=None, sample_weight=None):

    (X, y) = check_X_y(X, y, multi_output=True, accept_sparse=True)
    if (y.ndim == 1):
        raise ValueError('y    must    have    at    least    two    dimensions    for    multi-output    regression    but    has    only    one.')
    if ((sample_weight is not None) and (not has_fit_parameter(self.estimator, 'sample_weight'))):
        raise ValueError('Underlying    estimator    does    not    support    sample    weights.')
    first_time = (not hasattr(self, 'estimators_'))
    self.estimators_ = Parallel(n_jobs=self.n_jobs)((delayed(_partial_fit_estimator)((self.estimators_[i] if (not first_time) else self.estimator), X, y[:, i], (classes[i] if (classes is not None) else None), sample_weight, first_time) for i in range(y.shape[1])))
    return self
