使用图数据进行SVM聚类

时间:2012-08-02 12:58:59

标签: graph machine-learning cluster-analysis svm

我尝试使用SVM进行群集。我有社交网络图数据。在我的数据节点中,彼此连接。我想使用图形邻接矩阵作为SVM输入数据。我的SVM输入数据如下。我的主要问题是图形数据中的社区检测。

是否可以使用SVM对图表数据进行聚类。你能给我一些方法吗?我是SVM的初学者。

1 1:0 2:1 3:1 4:1 5:1

2 1:1 2:0 3:1 4:1 5:0

3 1:1 2:1 3:0 4:1 5:0

4 1:1 2:1 3:1 4:0 5:0

5 1:1 2:0 3:0 4:0 5:0

4 个答案:

答案 0 :(得分:1)

SVM无法进行群集,可以找到多类SVM和其他变种。另一方面,支持向量聚类存在它与SVM略有不同但接近。我不知道任何提供这种算法的软件包,到目前为止还不是很有名。

答案 1 :(得分:1)

一般来说,SVM用于分类,正如许多人所指出的那样。虽然存在基于SVM的聚类算法,但与序数SVM类似,它可以使用kernel trick,它允许您处理各种类型的数据,包括图形(图形内核)。相邻矩阵是图形相似性的相当不好的表示(除非你实际上对非常简单的现象感兴趣,但是然后使用基于SVM的方法看起来有点太多了。相信Ockham的剃刀 - 最简单的方法是最好的方法,我建议查看/使用更简单的聚类方法,如果它们效率不高,请考虑切换到SVM聚类。

我强烈建议您阅读有关此主题的论文,因为它并不像看起来那么容易,但它是一个很好的搜索主题:

  • Presentation regarding graph mining and graph kernels
  • Michel Neuhaus,Horst Bunke:源自图形编辑距离的随机游走内核。 SSPR / SPR 2006:191-199
  • S.V.N。 Vishwanathan,Karsten M. Borgwardt,Nicol N. Schraudolph:图形核的快速计算。 NIPS 2006:1449-1456

对于实现本身,matlab库(已经提到)位于:https://sites.google.com/site/daewonlee/research/svctoolbox

答案 2 :(得分:0)

您可以执行以下操作

  1. 根据需要为您的数据应用尽可能多的聚类算法。

  2. 确定您需要拥有多少个群集(或使用任何生成的群集中的多个群集)。

  3. 优化生成的输出,使聚类算法的输出与所需的聚类数(以及那些确切的聚类)相匹配。这是一个棘手的部分!

  4. 为SVM提供集群产生的数据,如质心,平均值等。

  5. 最后,使用经过训练的SVM根据您最初输入的数据生成聚类。

  6. 因此,的想法是基于其他聚类模型开发具有SVM的通用聚类模型 ......这样,您就可以拥有无​​监督的SVM聚类。 需要注意的是,您需要尽可能多的聚类数据行才能使SVM正常工作(否则,SVM会为您提供的每个输入输出单个数字。)

    资料来源:目前正在研究这种方法。

    编辑:语法等

答案 3 :(得分:0)

有几篇论文讨论了支持向量聚类;这是我要评估的一个:http://jmlr.org/papers/volume2/horn01a/rev1/horn01ar1.pdf

另外,在这里找到了一个R包:http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.190.9809