def estimate_exposure_hajek()

in causalPartition.py [0:0]


    def estimate_exposure_hajek(self, train_result_separate, indirect_space, outcome, eps=0.005, separate=True):
        """
        train_result_separate: result from training
        indirect_space: feature space (consistent with training input)
        outcome: (consistent with training input)
        eps: (consistent with training input)
        df_est=None: leave it 
        probabilities=None: leave it 
        separate=True: separate trees.
        """
        if separate:
            df_est = self.df_est
            probabilities = self.probabilities

            probabilities_est = {}
            for key in [self.treatment]+indirect_space:
                probabilities_est[key] = self.probabilities[key][self.idx_est]

            est_result_separate = {} 
            est_result_separate = self._split_exposure_validate(1, df_est, train_result_separate, probabilities_est, [], outcome, eps)
            self.est_result_separate = est_result_separate
            return est_result_separate
        else:
            # if find a valid partition for T == 1 or 0 separately
            df_est = self.df_est
            probabilities_est = {}
            for key in indirect_space+[self.treatment]:
                    probabilities_est[key] = self.probabilities[key][self.idx_est.astype(bool)]
            est_result_separate_eht = {} 
            est_result_separate_eht = self._split_exposure_validate_eht(1, df_est, train_result_separate, probabilities_est, [], outcome, eps)
            self.est_result_separate_eht = est_result_separate_eht
            return est_result_separate_eht