class_docstr: For details, visit https://arxiv.org/pdf/1612.01205.pdf
class_docstr_tok: ["For","details",",","visit","https",":","\/\/arxiv.org\/pdf\/1612.01205.pdf"]
code: def estimate(
      self, edp: EvaluationDataPage, hp: Optional[DoublyRobustHP] = None
  ) -> Tuple[CpeEstimate, CpeEstimate, CpeEstimate]:
      hp = hp or DoublyRobustHP()
      ed = self._prepare_data(edp)
      isd = self._get_importance_sampling_inputs(ed)
      return self._get_importance_sampling_estimates(isd, hp=hp)
  
imports: import logging
  from dataclasses import dataclass
  from typing import Dict, NamedTuple, Optional, Tuple, Union
  import numpy
  import torch
  from reagent.evaluation.cpe import bootstrapped_std_error_of_mean, CpeEstimate
  from reagent.evaluation.evaluation_data_page import EvaluationDataPage
  from torch import Tensor
label_desc: Use image node_id 5 for calling the DoublyRobustEstimator obj's underlying member method code with example usage: obj.estimate(edp, hp) and returns: self