编写决策树的简单库
BDT的Python项目详细描述
这是一个实现二叉决策树的简单库。
在计算机科学中,二元决策图(bdd)或分支 程序是用来表示布尔值的数据结构 功能。在更抽象的层次上,bdd可以被认为是 集合或关系的压缩表示。不像其他压缩的 表示,操作直接在压缩的 表现,即没有减压。
下面的树就是一个简单的例子:
每个节点都有一对子节点,其中一个子节点与 当父函数内部的函数返回一个真值时,以及 当父函数返回false时,则与other关联。
使用
您可以手动创建节点作为python对象,如 此示例:
frombdt.treeimportBDTfrombdt.nodeimportNodetrue_node=Node('True Node')false_node=Node('False Node')head_node=Node('Head Node',lambdavar:var<10,true_child=true_node,false_child=false_node)tree=BDT(head_node)
另一个选项是通过传递python字典来创建树:
frombdt.toolsimporttree_from_dicttree_dict={'head':'Head Node','variables':['withd','height'],'nodes':[{'name':'Head Node','function':'withd * height < 50','true_child':'True Node','false_child':'False Node'},{'name':'True Node','function':'withd * height < 25','true_child':'True True Node','false_child':'True False Node'},{'name':'False Node','function':'withd * height < 100','true_child':'False True Node','false_child':'False False Node'},{'name':'True True Node','function':'None','true_child':'None','false_child':'None'},{'name':'True False Node','function':'None','true_child':'None','false_child':'None',},{'name':'False True Node','function':'None','true_child':'None','false_child':'None'},{'name':'False False Node','function':'None','true_child':'None','false_child':'None'},]}tree=tree_from_dict(tree_dict)
最后一种形式是从一个json文件加载它,该文件与 上一个词典,并通过使用加载:
importjsonfrombdt.toolsimporttree_from_jsonjson_data=open('{PATH_TO_FILE/file.json}','r')tree=tree_from_json(json_data)
最后一种形式是从一个json文件加载它,该文件与 上一个词典,并通过使用加载:
importjsonfrombdt.toolsimporttree_from_jsonjson_data=open('{PATH_TO_FILE/file.json}','r')tree=tree_from_json(json_data)
要遍历创建的树,您可以这样做:
importjsonfrombdt.toolsimporttree_from_jsonjson_data=open('{PATH_TO_FILE/file.json}','r')tree=tree_from_json(json_data)tree.set_parameters({'withd':25,'height':25})fornodeintree:printnode.name
set_parameters函数允许您初始化运行所需的值 每个节点内的布尔函数。