code: def predict(self, X):
          
          X = np.atleast_2d(X)
          m = np.empty(shape=(0,1))
          s = np.empty(shape=(0,1))
  
          for k in range(X.shape[0]):
              preds = []
              for pred in self.model.estimators_:
                  preds.append(pred.predict(X[k,:])[0])
              m = np.vstack((m ,np.array(preds).mean()))
              s = np.vstack((s ,np.array(preds).std()))
          return m, s
docs: Predictions with the model. Returns posterior means and standard deviations at X.