'Estimate probability.
Parameters
X : array-like, shape (n_samples, n_features)
Input data.
Returns
C : array, shape (n_samples, n_classes)
Estimated probabilities.'

def predict_proba(self, X):

    prob = self.decision_function(X)
    prob *= (-1)
    np.exp(prob, prob)
    prob += 1
    np.reciprocal(prob, prob)
    if (len(self.classes_) == 2):
        return np.column_stack([(1 - prob), prob])
    else:
        prob /= prob.sum(axis=1).reshape((prob.shape[0], (-1)))
        return prob
