我正在尝试编写一个决策过程,否则需要大量的 IF ELSE 脚本,我想知道是否可以在 scikit learn 的决策树分类器中以根节点、决策节点和离开节点的形式表达整个过程.
请注意,这里不涉及培训,只是节点的直接用户定义。
答案 0 :(得分:0)
我明白了,但决策树是一种非常特殊的算法,其目标与您的目标大不相同。根据条件的种类以及您拥有的条件的数量,您应该首先评估地图(字典)是否更合适。如果你仍然认为你需要继续使用树结构,你应该像@akshay-sehgal 所说的那样实现你自己的树。
您可以使用这个简单的 Node
类,该类将条件作为 lambda 存储在属性 left_condition
中。如果 left_condition
为 None,则该节点是叶节点并返回 value
。否则,它是一个决策节点并转到 left
或 right
节点,如您在 get_value
函数中所见:
class Node:
def __init__(left_condition = None, value = None, left = None, right= None):
self.left_condition = left_condition
self.value = value
self.left = left
self.right = right
def get_value(tree,data):
node = tree
while node.left_condition is not None:
if left_condition(data):
node = node.left
else:
node = node.right
return node.value