class_docstr: Generator for Thompson sampling.
  
  The generator performs Thompson sampling on the data passed in via `fit`.
  Arms are given weight proportional to the probability that they are
  winners, according to Monte Carlo simulations.
class_docstr_tok: ["Generator","for","Thompson","sampling",".","The","generator","performs","Thompson","sampling","on","the","data","passed","in","via","`","fit","`",".","Arms","are","given","weight","proportional","to","the","probability","that","they","are","winners",",","according","to","Monte","Carlo","simulations","."]
code: def fit(
      self,
      Xs: List[List[TParamValueList]],
      Ys: List[List[float]],
      Yvars: List[List[float]],
      parameter_values: List[TParamValueList],
      outcome_names: List[str],
  ) -> None:
      self.X = self._fit_X(Xs=Xs)
      self.Ys, self.Yvars = self._fit_Ys_and_Yvars(
          Ys=Ys, Yvars=Yvars, outcome_names=outcome_names
      )
      self.X_to_Ys_and_Yvars = self._fit_X_to_Ys_and_Yvars(
          X=self.X, Ys=self.Ys, Yvars=self.Yvars
      )
  
imports: import hashlib
  import json
  from typing import Dict, List, Optional, Tuple
  import numpy
  from ax.core.types import TGenMetadata, TParamValue, TParamValueList
  from ax.exceptions.constants import TS_MIN_WEIGHT_ERROR, TS_NO_FEASIBLE_ARMS_ERROR
  from ax.exceptions.model import ModelError
  from ax.models.discrete_base import DiscreteModel
  from ax.models.types import TConfig
  from ax.utils.common.docutils import copy_doc
label_desc: Use image node_id 2 for calling the ThompsonSampler obj's underlying member method code with example usage: obj.fit(Xs, Ys, Yvars, parameter_values, outcome_names) without return types