'Apply transforms, and predict_log_proba of the final estimator
Parameters
X : iterable
Data to predict on. Must fulfill input requirements of first step
of the pipeline.
Returns
y_score : array-like, shape = [n_samples, n_classes]'

@if_delegate_has_method(delegate='_final_estimator')
def predict_log_proba(self, X):

    Xt = X
    for (name, transform) in self.steps[:(-1)]:
        if (transform is not None):
            Xt = transform.transform(Xt)
    return self.steps[(-1)][(-1)].predict_log_proba(Xt)
