pyTree(tree structure in python )
2013-10-31 10:10
288 查看
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定义)
例子(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定义)
相关文章推荐
- [LeetCode]题解(python):105-Construct Binary Tree from Preorder and Inorder Traversal
- binomial tree in python
- [leetcode]Binary Tree Inorder Traversal @ Python
- 【python问题系列--1】SyntaxError:Non-ASCII character '\xe5' in file kNN.py on line 2, but no encoding declared;
- A Complete Tutorial on Tree Based Modeling from Scratch (in R & Python)
- Data Structure Binary Search Tree: Inorder Successor in Binary Search Tree
- Data Structure and Algorithm in Python 第一章 课后练习
- 【DataStructure In Python】Python模拟二叉树
- Py第二十问 How to fix “ImportError: No module named …” error in Python?
- Data Structure Binary Tree: Lowest Common Ancestor in a Binary Tree
- [python]leetcode(105). Construct Binary Tree from Preorder and Inorder Traversal
- How To Implement The Decision Tree Algorithm From Scratch In Python (从零开始在Python中实现决策树算法)
- python问题Non-ASCII character '\xe5' in file Apriori.py on line 1, but no encoding declared 解决办法
- 目标跟踪算法三:Modeling and Propagating CNNs in a Tree Structure for Visual Tracking (VOT2016冠军)
- python出现中文错误:SyntaxError: Non-ASCII character '\xe7' in file car-training.py on line 7, but no encod
- 【LeetCode with Python】 Binary Tree Inorder Traversal
- 【LeetCode】【Python】Binary Tree Inorder Traversal
- Parse JSON into ordered data-structure (in python)
- [LeetCode]Construct Binary Tree from Preorder and Inorder Traversal@python
- Processing XML in Python with ElementTree