docs: def predict(self, testing_features):
          """predict on a holdout data set."""
          # print("best_inds:",self._best_inds)
          # print("best estimator size:",self._best_estimator.coef_.shape)
          if self.clean:
              testing_features = self.impute_data(testing_features)
  
          if self._best_inds:
              X_transform = self.transform(testing_features)
              try:
                  return self._best_estimator.predict(self.transform(testing_features))
              except ValueError as detail:
                  # pdb.set_trace()
                  print('shape of X:',testing_features.shape)
                  print('shape of X_transform:',X_transform.transpose().shape)
                  print('best inds:',self.stacks_2_eqns(self._best_inds))
                  print('valid locs:',self.valid_loc(self._best_inds))
                  raise ValueError(detail)
          else:
              return self._best_estimator.predict(testing_features)