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定義)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章