pyTree(tree structure in python )
https://github.com/caesar0301/pyTree
例子(decision tree):
class innerNode(Node): def __init__(self,attribute,parent_node_assert,identifier=None, expanded=True): self.node_assert = parent_node_assert self.tag = attribute self._identifier = self.set_identifier(identifier) self.expanded = expanded self._bpointer = None self._fpointer = [] def __str__(self): return str(self.node_assert) class leafNode(Node): def __init__(self,class_label,parent_node_assert,identifier=None, expanded=True): self.tag = class_label self.node_assert = parent_node_assert self._identifier = self.set_identifier(identifier) self.expanded = expanded self._bpointer = None self._fpointer = [] def __str__(self): return str(self.class_label) def create_decision_tree(): true = lambda x:True tree = Tree() tree.add_node(innerNode('salary', true,1)) tree.add_node(innerNode(">10",lambda x:x>10,2),parent=1) tree.add_node(innerNode("<=10",lambda x:x<=10,3),parent=1) tree.add_node(leafNode("yes",true,4),parent=2) tree.add_node(leafNode("no",true,5),parent=3) tree.show() return tree
注意事项:
1. 如果自定义了MyNode, (1)建树的时候不能用tree.create_node()(它会取默认的node类),而是用tree.add_node()
(2)重载定义新的MyNode时,__init__函数的参数要写全。(参考官方的Node定义)
版权声明:本文为博主原创文章,未经博主允许不得转载。