[英]Nested dictionary to compare against 2D array
所以我有这个嵌套字典
myDictionary = {'x_1 = cloudy': {'x_0 = high': True, 'x_0 = low': False},
'x_1 = partly cloudy': False,
'x_1 = sunny': {'x_0 = high': False, 'x_0 = low': True}}
我还有一个二维数组
X_test = np.array([['low', 'sunny'],['high', 'sunny'], ['high', 'cloudy'],
['low', 'partly cloudy'],['low', 'cloudy']])
我正在尝试根据字典测试数组。 字典本质上是一个训练有素的决策树,这样:
任何其他条件表示(无雨)例如,高 -> 部分多云 -> 假(无雨)
我写了这个 function 从上面得到所需的 output 但我在导航树和获取错误值方面有点失败。
def predict(x, d):
for key, value in d.items():
if type(value) is dict:
if key.split(" = ")[1] in x:
return predict(x, value)
else:
return value
pred = [predict(x, tree) for x in X]
我如何浏览这本字典并检查上述条件? 感谢帮助。
我稍微简化了数据,以下工作
def predict(x, d):
if type(d[x[1]]) is not dict:
return d[x[1]]
if x[1] in d.keys():
return d[x[1]][x[0]]
我用来代替myDictionary
tree = {'cloudy': {'high': True, 'low': False},
'partly cloudy': False,
'sunny': {'high': False, 'low': True}}
我假设您从其他示例中获取代码,因为我发现这里的递归很复杂。 思维简单。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.