(self, X)
return probabilities
Following an unordered set of rules, for each instance, all
        rules are tried and those that fire are collected. If a clash
        occurs, class probabilities (predictions) of all collected rules
        are summed and weighted.

        Notes
        -----
        If no other rules fire, the default rule prediction is used.
        Any other empty rules (a fallout most common in the domain of
        weighted covering algorithms) are ignored.

        Parameters
        ----------
        X : ndarray
            Classify this data.

        Returns
        -------
        res : ndarray, float
            Probabilistic classification.
Following an unordered set of rules, for each instance, all
        rules are tried and those that fire are collected. If a clash
        occurs, class probabilities (predictions) of all collected rules
        are summed and weighted.
Following an unordered set of rules for each instance all rules are tried and those that fire are collected . If a clash occurs class probabilities ( predictions ) of all collected rules are summed and weighted .
def unordered_predict(self, X):
        """
        Following an unordered set of rules, for each instance, all
        rules are tried and those that fire are collected. If a clash
        occurs, class probabilities (predictions) of all collected rules
        are summed and weighted.

        Notes
        -----
        If no other rules fire, the default rule prediction is used.
        Any other empty rules (a fallout most common in the domain of
        weighted covering algorithms) are ignored.

        Parameters
        ----------
        X : ndarray
            Classify this data.

        Returns
        -------
        res : ndarray, float
            Probabilistic classification.
        """
        num_classes = len(self.domain.class_var.values)
        probabilities = np.array([np.zeros(num_classes, dtype=float)
                                  for _ in range(X.shape[0])])

        num_hits = np.zeros(X.shape[0], dtype=int)
        total_weight = np.vstack(np.zeros(X.shape[0], dtype=float))
        for rule in self.rule_list[:-1]:
            if rule.length > 0:
                curr_covered = rule.evaluate_data(X)
                num_hits += curr_covered
                temp = rule.curr_class_dist.sum()
                probabilities[curr_covered] += rule.probabilities * temp
                total_weight[curr_covered] += temp

        default_rule = self.rule_list[-1]
        weigh_down = num_hits > 0
        apply_default = num_hits == 0

        probabilities[weigh_down] /= total_weight[weigh_down]
        probabilities[apply_default] = default_rule.probabilities
        return probabilities
def unordered_predict ( self , X ) : num_classes = len ( self . domain . class_var . values ) probabilities = np . array ( [ np . zeros ( num_classes , dtype = float ) for _ in range ( X . shape [ 0 ] ) ] ) num_hits = np . zeros ( X . shape [ 0 ] , dtype = int ) total_weight = np . vstack ( np . zeros ( X . shape [ 0 ] , dtype = float ) ) for rule in self . rule_list [ : - 1 ] : if rule . length > 0 : curr_covered = rule . evaluate_data ( X ) num_hits += curr_covered temp = rule . curr_class_dist . sum ( ) probabilities [ curr_covered ] += rule . probabilities * temp total_weight [ curr_covered ] += temp default_rule = self . rule_list [ - 1 ] weigh_down = num_hits > 0 apply_default = num_hits == 0 probabilities [ weigh_down ] /= total_weight [ weigh_down ] probabilities [ apply_default ] = default_rule . probabilities return probabilities