'Fit underlying estimators.
Parameters
X : (sparse) array-like, shape = [n_samples, n_features]
Data.
y : (sparse) array-like, shape = [n_samples, ], [n_samples, n_classes]
Multi-class targets. An indicator matrix turns on multilabel
classification.
Returns
self'

def fit(self, X, y):

    self.label_binarizer_ = LabelBinarizer(sparse_output=True)
    Y = self.label_binarizer_.fit_transform(y)
    Y = Y.tocsc()
    self.classes_ = self.label_binarizer_.classes_
    columns = (col.toarray().ravel() for col in Y.T)
    self.estimators_ = Parallel(n_jobs=self.n_jobs)((delayed(_fit_binary)(self.estimator, X, column, classes=[('not    %s' % self.label_binarizer_.classes_[i]), self.label_binarizer_.classes_[i]]) for (i, column) in enumerate(columns)))
    return self
