causalPartition.py [106:128]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        b_feature = ''
        b_threshold = 0
        b_left = None
        b_right = None
        b_average_left_hajek = 0
        b_average_right_hajek = 0
        b_mse = 10000000000.0  # a very large mse

        ranges = {}
        # enumerate each feature
        for feature in feature_set:
            gc.collect()
            # find a more compact region
            upper = 1.
            lower = 0.
            for rule in rules:
                # rules: list of tuples to describe the decision rules
                # tuples(feature, 0/1: lower or upper bound, value)
                if rule[0] == feature:
                    if rule[1] == 0:
                        lower = np.maximum(rule[2], lower)
                    else:
                        upper = np.minimum(rule[2], upper)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



causalPartition.py [358:378]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        b_feature = ''
        b_threshold = 0
        b_left = None
        b_right = None
        b_average_left_hajek = 0
        b_average_right_hajek = 0
        b_mse = 10000000000.0

        ranges = {}
        
        for feature in feature_set:
            gc.collect()
            # find the more compact valid region
            upper = 1.
            lower = 0.
            for rule in rules:
                if rule[0] == feature:
                    if rule[1] == 0:
                        lower = np.maximum(rule[2], lower)
                    else:
                        upper = np.minimum(rule[2], upper)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



