'Returns the distance of each sample from the decision boundary for
each class. This can only be used with estimators which implement the
decision_function method.
Parameters
X : array-like, shape = [n_samples, n_features]
Returns
T : array-like, shape = [n_samples, n_classes]'

@if_delegate_has_method(['_first_estimator', 'estimator'])
def decision_function(self, X):

    check_is_fitted(self, 'estimators_')
    if (len(self.estimators_) == 1):
        return self.estimators_[0].decision_function(X)
    return np.array([est.decision_function(X).ravel() for est in self.estimators_]).T
