基于权重的图中顶点分类算法

时间:2016-01-04 21:30:10

标签: algorithm graph classification knn vertices

我有以下完整的加权图,其中每个权重表示顶点属于与下一个相同类别的概率。我先知道一些顶点所属的类别;我怎样才能对其他所有顶点进行分类?

image

我可以用更详细的方式将问题描述如下:从所有顶点N和簇C,我们有一个集合,我们确定节点所属的特定集群:P(v_n | C_n)= 1。从给出的图中我们也知道每个节点,每个其他属于同一群集的概率:P(v_n1∩C_n2)。由此,我们如何估计每个其他节点的集群?

2 个答案:

答案 0 :(得分:1)

w_i成为一个向量,其中w_i[j]是节点j的概率,位于cluser中,迭代i

我们定义w_i

w_0[j] =  1       j is given node in the class
          0       otherwise
w_{i}[j] = P(j | w_{i-1})

其中:P(j | w_ {i-1})是概率j在群集中,假设我们知道其中每个其他节点k的概率为w_{i-1}[k]

我们可以计算出上述概率:

P(j | w_{i-1}) = 1- (1- w_{i-1}[0]*c(0,j))*(1- w_{i-1}[1]*c(1,j))*...*(1- w_{i-1}[n-1]*c(n-1,j))

在这里:

  • w_{i-1}是最后一次迭代的输出。
  • c(x,y)是边(x,y)
  • 的权重
  • c(x,x)= 1

重复直到收敛,并在收敛向量中(让它为w),j在群集中的概率为w[j]

概率函数的解释:

为了使节点不在集合中,它需要所有其他节点“决定”不共享它。
因此,发生这种情况的可能性是:

(1- w_{i-1}[0]*c(0,j))*(1- w_{i-1}[1]*c(1,j))*...*(1- w_{i-1}[n-1]*c(n-1,j))
      ^                            ^                       ^
node 0 doesn't share      node 1 doesn't share     node n-1 doesn't share

为了进入班级,至少有一个节点需要“共享”,因此发生这种情况的概率是补充,这是我们为P(j | w_{i-1})

得出的公式。

答案 1 :(得分:1)

您应该从结果的定义开始。你应该如何表明归属的可能性?

结果,恕我直言,应该是一组类别和一个表:类别的顶点和列的行,并且在单元格中,有可能将该顶点归入此类别。

只有在您已经有一些已知的概率时,您的图表才能设置一些归属概率。即,该表已经部分填充。

当根据边缘的起始值和权重填充表格时,当我们在单元格中获得不同的概率时,我们肯定会遇到这种情况,并以不同的方式进入它。还应该设置一个点:我们可以更改表格中的起始值,还是几乎不设置它们?关于边缘权重的相同问题。

现在任务已部分定义,部分非常非常小。你甚至不知道类别的数量!

设置所有这些规则和数字后,所有这些都非常简单 - 使用小方块的高斯方法。至于迭代方式,请注意 - 如果解决方案稳定或存在,您事先不知道。如果没有,迭代就不会收敛,而你为它编写的整段代码都是无用的。通过高斯方法,您将获得一组线性方程,并编写标准算法以解决所有情况。最后,你不仅有解决方案,而且还有每个最终价值的可能错误。