'Return the log of probability estimates.
Parameters
X : array-like, shape (n_samples, n_features)
The input data.
Returns
log_y_prob : array-like, shape (n_samples, n_classes)
The predicted log-probability of the sample for each class
in the model, where classes are ordered as they are in
`self.classes_`. Equivalent to log(predict_proba(X))'

def predict_log_proba(self, X):

    y_prob = self.predict_proba(X)
    return np.log(y_prob, out=y_prob)
