code: def _linear_predictor(self, X=None, modelmat=None, b=None, term=-1):
          
          if modelmat is None:
              modelmat = self._modelmat(X, term=term)
          if b is None:
              b = self.coef_[self.terms.get_coef_indices(term)]
          return modelmat.dot(b).flatten()
docs: linear predictor
          compute the linear predictor portion of the model
          ie multiply the model matrix by the spline basis coefficients
  
          Parameters
          ---------
          at least 1 of (X, modelmat)
              and
          at least 1 of (b, feature)
  
          X : array-like of shape (n_samples, m_features) or None, optional
              containing the input dataset
              if None, will attempt to use modelmat
  
          modelmat : array-like or None, optional
              contains the spline basis for each feature evaluated at the input
              values for each feature, ie model matrix
              if None, will attempt to construct the model matrix from X
  
          b : array-like or None, optional
              contains the spline coefficients
              if None, will use current model coefficients
  
          feature : int, optional
                    feature for which to compute the linear prediction
                    if -1, will compute for all features
  
          Returns
          -------
          lp : np.array of shape (n_samples,)