class_docstr: This class specifies the interface for a model based on discrete parameters.
  
  These methods should be implemented to have access to all of the features
  of Ax.
class_docstr_tok: ["This","class","specifies","the","interface","for","a","model","based","on","discrete","parameters",".","These","methods","should","be","implemented","to","have","access","to","all","of","the","features","of","Ax","."]
docstr: Do cross validation with the given training and test sets.
  
  Training set is given in the same format as to fit. Test set is given
  in the same format as to predict.
  
  Args:
      Xs_train: A list of m lists X of parameterizations (each parameterization
          is a list of parameter values of length d), each of length k_i,
          for each outcome.
      Ys_train: The corresponding list of m lists Y, each of length k_i, for
          each outcome.
      Yvars_train: The variances of each entry in Ys, same shape.
      X_test: List of the j parameterizations at which to make predictions.
  
  Returns:
      2-element tuple containing
  
      - (j x m) array of outcome predictions at X.
      - (j x m x m) array of predictive covariances at X.
        `cov[j, m1, m2]` is `Cov[m1@j, m2@j]`.
docstr_tok: ["Do","cross","validation","with","the","given","training","and","test","sets",".","Training","set","is","given","in","the","same","format","as","to","fit",".","Test","set","is","given","in","the","same","format","as","to","predict",".","Args",":","Xs_train",":","A","list","of","m","lists","X","of","parameterizations","(","each","parameterization","is","a","list","of","parameter","values","of","length","d",")",",","each","of","length","k_i",",","for","each","outcome",".","Ys_train",":","The","corresponding","list","of","m","lists","Y",",","each","of","length","k_i",",","for","each","outcome",".","Yvars_train",":","The","variances","of","each","entry","in","Ys",",","same","shape",".","X_test",":","List","of","the","j","parameterizations","at","which","to","make","predictions",".","Returns",":","2-element","tuple","containing","-","(","j","x","m",")","array","of","outcome","predictions","at","X",".","-","(","j","x","m","x","m",")","array","of","predictive","covariances","at","X",".","`","cov","[","j",",","m1",",","m2","]","`","is","`","Cov","[","m1","@","j",",","m2","@","j","]","`","."]
code: def cross_validate(
      self,
      Xs_train: List[List[TParamValueList]],
      Ys_train: List[List[float]],
      Yvars_train: List[List[float]],
      X_test: List[TParamValueList],
  ) -> Tuple[np.ndarray, np.ndarray]:
      """Do cross validation with the given training and test sets.
  
      Training set is given in the same format as to fit. Test set is given
      in the same format as to predict.
  
      Args:
          Xs_train: A list of m lists X of parameterizations (each parameterization
              is a list of parameter values of length d), each of length k_i,
              for each outcome.
          Ys_train: The corresponding list of m lists Y, each of length k_i, for
              each outcome.
          Yvars_train: The variances of each entry in Ys, same shape.
          X_test: List of the j parameterizations at which to make predictions.
  
      Returns:
          2-element tuple containing
  
          - (j x m) array of outcome predictions at X.
          - (j x m x m) array of predictive covariances at X.
            `cov[j, m1, m2]` is `Cov[m1@j, m2@j]`.
      """
      raise NotImplementedError
  
file_path: Ax/ax/models/discrete_base.py
imports: from typing import Dict, List, Optional, Tuple
  import numpy
  from ax.core.types import TGenMetadata, TParamValue, TParamValueList
  from ax.models.base import Model
  from ax.models.types import TConfig
label_desc: Use image node_id 4 for calling the DiscreteModel obj's underlying member method code with example usage: obj.cross_validate(Xs_train, Ys_train, Yvars_train, X_test) without return types