使用决策树分类器进行自动决策
Automated Decision Making Using Decision Tree Classifier
我正在尝试编写一个决策过程,否则需要大量的 IF ELSE 脚本,我想知道是否可以在 scikit learn 的决策中以根、决策和离开节点的形式表达整个过程树分类器。
请注意,不涉及训练,只是节点的直接用户定义。
我明白了,但是决策树是一种非常特殊的算法,其目标与您的目标大不相同。根据条件的种类和条件的多少,您应该首先评估地图(字典)是否更合适。如果你仍然认为你需要继续使用树结构,你应该像@akshay-sehgal 说的那样实现你自己的树。
您可以使用这个简单的 Node
class 将条件存储为属性 left_condition
中的 lambda。如果 left_condition
是 None,则该节点是叶子并且 returns 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
我正在尝试编写一个决策过程,否则需要大量的 IF ELSE 脚本,我想知道是否可以在 scikit learn 的决策中以根、决策和离开节点的形式表达整个过程树分类器。
请注意,不涉及训练,只是节点的直接用户定义。
我明白了,但是决策树是一种非常特殊的算法,其目标与您的目标大不相同。根据条件的种类和条件的多少,您应该首先评估地图(字典)是否更合适。如果你仍然认为你需要继续使用树结构,你应该像@akshay-sehgal 说的那样实现你自己的树。
您可以使用这个简单的 Node
class 将条件存储为属性 left_condition
中的 lambda。如果 left_condition
是 None,则该节点是叶子并且 returns 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