gpt4 book ai didi

python - Python中的简单决策树(嵌套if语句)?

转载 作者:行者123 更新时间:2023-12-04 10:53:29 25 4
gpt4 key购买 nike

我想定义一个嵌套的 if -JSON 中的语句并使用 Python 对其进行测试。我在想一个简单的决策树 嵌套分支,递归测试。

伪代码 :

# is_valid = (a == b OR a == a) AND c == c  # True
tree = {
branches: [
{
value1: 'a',
operator: '==',
value2: 'b',
child_connector: 'or'
children: [
{
value1: 'a',
operator: '==',
value2: 'a'
}
]
},
{
connector: 'and',
value1: 'c',
operator: '==',
value2: 'c'
}
]
}

def is_tree_valid(tree):
# TODO
return

is_valid = is_tree_valid(tree)

当我在 Google 上搜索决策树时,我发现了很多与 AI 相关的内容,但通常太深了。我正在寻找一些简单的东西,并猜测这是一个常见的话题,并且经常被重新发明。

我将不胜感激代码片段、模块或任何其他建议来完成 is_tree_valid() .

提前致谢!

最佳答案

这与算法一样重要,但将它们设计在一起是合理的。要计算的表达式的最简单编码是 AST 的直接翻译。 :

{
"operator": "and",
"left": {
"operator": "or",
"left": {
"operator": "==",
"left": "a",
"right": "b"
},
"right": {
"operator": "==",
"left": "a",
"right": "a"
}
},
"right": {
"operator": "==",
"left": "c",
"right": "c"
}
}

然后(在解析成明显的 Python 结构之后),评估看起来像

def evaluate(node):
try: op=node['operator']
except TypeError: return node # leaf
l=evaluate(node['left'])
r=node['right'] # not evaluated yet
if op=='==': return l==evaluate(r)
elif op=='and': return l and evaluate(r)
elif op=='or': return l or evaluate(r)
else: raise ValueError("unknown operator: %r"%op)

关于python - Python中的简单决策树(嵌套if语句)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59346864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com