'Predict using the linear model.
In addition to the mean of the predictive distribution, also its
standard deviation can be returned.
Parameters
X : {array-like, sparse matrix}, shape = (n_samples, n_features)
Samples.
return_std : boolean, optional
Whether to return the standard deviation of posterior prediction.
Returns
y_mean : array, shape = (n_samples,)
Mean of predictive distribution of query points.
y_std : array, shape = (n_samples,)
Standard deviation of predictive distribution of query points.'

def predict(self, X, return_std=False):

    y_mean = self._decision_function(X)
    if (return_std is False):
        return y_mean
    else:
        if self.normalize:
            X = ((X - self.X_offset_) / self.X_scale_)
        sigmas_squared_data = (np.dot(X, self.sigma_) * X).sum(axis=1)
        y_std = np.sqrt((sigmas_squared_data + (1.0 / self.alpha_)))
        return (y_mean, y_std)
