コード例 #1
0
 def induce(self):
     '''
     Induces rules for the given knowledge base.
     '''
     root_pred = self.kb.get_root()
     rules = [Rule(self.kb, predicates=[root_pred], target=self.target)]
     rules = self.__induce_level(rules)
     return filter(interesting, rules)
コード例 #2
0
ファイル: optimal.py プロジェクト: doyeogetit/clowdflows
 def induce(self):
     '''
     Induces rules for the given knowledge base.
     '''
     kb = self.kb
     has_min_sup = lambda pred: kb.get_members(pred).count() >= self.min_sup
     all_predicates = filter(has_min_sup, kb.predicates)
     rules = []
     for depth in range(1, self.depth+1):
         for attrs in combinations(all_predicates, depth):
             rule = Rule(kb, predicates=self._labels_to_predicates(attrs),
                         target=self.target)
             rules.append(rule)
     rules = sorted(rules, key=lambda r: r.score, reverse=True)
     return rules[:self.n]