class_docstr: Base class for UCB-like Multi-Armed Bandits (MAB)
  
  Args:
      estimate_variance: If True, per-arm reward variance is estimated and we multiply thconfidence interval width
          by its square root
      min_variance: The lower bound applied to the estimated variance. If variance is not estimated, this value is used instead of an estimate.
      alpha: Scalar multiplier for confidence interval width. Values above 1.0 make exploration more aggressive, below 1.0 less aggressive
class_docstr_tok: ["Base","class","for","UCB-like","Multi-Armed","Bandits","(","MAB",")","Args",":","estimate_variance",":","If","True",",","per-arm","reward","variance","is","estimated","and","we","multiply","thconfidence","interval","width","by","its","square","root","min_variance",":","The","lower","bound","applied","to","the","estimated","variance",".","If","variance","is","not","estimated",",","this","value","is","used","instead","of","an","estimate",".","alpha",":","Scalar","multiplier","for","confidence","interval","width",".","Values","above","1.0","make","exploration","more","aggressive",",","below","1.0","less","aggressive"]
code: def __init__(
      self,
      randomize_ties: bool = True,
      estimate_variance: bool = True,
      min_variance: float = 0.0,
      alpha: float = 1.0,
      min_num_obs_per_arm: int = 1,
      *,
      n_arms: Optional[int] = None,
      arm_ids: Optional[List[str]] = None,
  ) -> None:
      super().__init__(
          n_arms=n_arms,
          arm_ids=arm_ids,
          randomize_ties=randomize_ties,
          min_num_obs_per_arm=min_num_obs_per_arm,
      )
      self.estimate_variance = estimate_variance
      self.min_variance = torch.tensor(min_variance)
      self.alpha = alpha
  
imports: import math
  from abc import ABC, abstractmethod
  from typing import List, Optional
  import torch
  from reagent.mab.mab_algorithm import MABAlgo
  from torch import Tensor
label_desc: Use image node_id 1 to create a new BaseUCB object from inherited base classes: MABAlgo, ABC with example: obj = BaseUCB(randomize_ties, estimate_variance, min_variance, alpha, min_num_obs_per_arm)