Python 2.7 graphlab.label\u propagation.create中支持多个标签值

Python 2.7 graphlab.label\u propagation.create中支持多个标签值,python-2.7,graphlab,Python 2.7,Graphlab,下面的代码尝试添加两个顶点,两个顶点都具有多个标签值。然后尝试将标签“labelx”上的标签传播应用于创建的图形 from graphlab import label_propagation from graphlab import SFrame, SGraph, Vertex, Edge g = SGraph() verts = [Vertex('H',attr={'labelx': [1,0]})] g= g.add_vertices(verts) verts = [Vertex('I',

下面的代码尝试添加两个顶点,两个顶点都具有多个标签值。然后尝试将标签“labelx”上的标签传播应用于创建的图形

from graphlab import label_propagation
from graphlab import SFrame, SGraph, Vertex, Edge

g = SGraph()
verts = [Vertex('H',attr={'labelx': [1,0]})]
g= g.add_vertices(verts)
verts = [Vertex('I',attr={'labelx': [0,2]})]
g= g.add_vertices(verts)
g = g.add_edges(Edge('H','I'))
print g.summary
m = label_propagation.create(g, label_field='labelx')
但是,将错误作为TypeError抛出:TypeErro…typed。“,)

在Labelpropagation的文档中,我在任何地方都找不到多标签支持信息。 欢迎提供有关如何解决此问题的任何提示。 如果graphlab.label_传播不支持顶点上的多标签,则提供此功能的其他软件包上的任何说明都将非常有用


谢谢

我不太确定你的问题是什么-你发布的代码对我来说很好。您是否询问更新“labelx”属性中的值?是的,它可以工作。我的缺点是测试不正确。问题在于Label_传播,而不是SGraph()。这是实际问题,欢迎提供任何提示。相应地更新了问题。是的,graphlab标签传播只适用于整数类标签,所以这不起作用。对于这样的多标签输入,您希望看到什么行为?我无法判断您是使用多个标签初始化顶点,还是要运行标签属性。在两个不同的属性上。如果是第二种情况,您可以创建两个属性字段,并运行label prop两次。对于第一种情况,我没有一个很好的答案,但有一个想法是将标记的节点分成两个,每个节点都有一个已知的标签,并将它们连接到相同的边缘。嗨@papayawarrior,谢谢你回来。我的是第一个病例。我有将近80%的顶点具有多个标签值/标签,有些顶点具有超过5个标签值/标签。我一定会尝试你的建议(分割标记的节点),尽管我不确定它的效果如何。嗨@papayawarrior,关于GraphChi的任何想法,它支持多个标签值,每个标签值都有一个概率/顶点,如中所述。我想,具有2个标签值的顶点的概率/标签值为0.5。如果您对此有任何想法,我们将不胜感激。谢谢