下面是决策树的属性和值的不同路径。如果我把每一个组合的树都一一列举出来,那棵树就很大了。所以…树的每个路径都是叶节点的不同属性和值。在
如果给定一个要评分的值列表,即找到具有最常见元素的节点,我使用下面的代码。在
要想达到我想要的目标,最快的方法是什么?下面的方法可行,但是时间是最重要的,因此值得使用c
并导入python。在
树形结构会更快吗?如果是-什么结构?凌乱编织会更快吗?在
nodes = {}
nodes[1] = ['hod=1','hod=2','state=NY','state=LA']
nodes[2] = ['hod=3','hod=4','state=FL','state=NV']
nodes[3] = ['hod=5','hod=6','state=WY','state=HI']
nodes[4] = ['hod=5','hod=6']
score = ['hod=6','state=WY','dow=4']
score_size = len(score)
max_node = -1
max_len = -1
for node_id, node in nodes.iteritems():
this_node_interection_len = len(set(score).intersection(node))
if this_node_interection_len>max_len:
max_len = this_node_interection_len
max_node = node_id
#print node_id, len(set(score).intersection(node))
print 'max_node',3
将数据存储在堆中可能会更快,其中
len(score.intersection(node))
是每个节点的键值。通过这种方式,构建初始数据结构要比创建一个平面字典慢一些,但是您可以快速检索前几个节点,而不仅仅是得分最高的节点。在您还应该考虑使用PyPy或类似的方法来优化性能。在
相关问题 更多 >
编程相关推荐