我尝试使用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
答案 0 :(得分:1)
SVM无法进行群集,可以找到多类SVM和其他变种。另一方面,支持向量聚类存在它与SVM略有不同但接近。我不知道任何提供这种算法的软件包,到目前为止还不是很有名。
答案 1 :(得分:1)
一般来说,SVM用于分类,正如许多人所指出的那样。虽然存在基于SVM的聚类算法,但与序数SVM类似,它可以使用kernel trick,它允许您处理各种类型的数据,包括图形(图形内核)。相邻矩阵是图形相似性的相当不好的表示(除非你实际上对非常简单的现象感兴趣,但是然后使用基于SVM的方法看起来有点太多了。相信Ockham的剃刀 - 最简单的方法是最好的方法,我建议查看/使用更简单的聚类方法,如果它们效率不高,请考虑切换到SVM聚类。
我强烈建议您阅读有关此主题的论文,因为它并不像看起来那么容易,但它是一个很好的搜索主题:
对于实现本身,matlab库(已经提到)位于:https://sites.google.com/site/daewonlee/research/svctoolbox
答案 2 :(得分:0)
您可以执行以下操作:
根据需要为您的数据应用尽可能多的聚类算法。
确定您需要拥有多少个群集(或使用任何生成的群集中的多个群集)。
优化生成的输出,使聚类算法的输出与所需的聚类数(以及那些确切的聚类)相匹配。这是一个棘手的部分!
为SVM提供集群产生的数据,如质心,平均值等。
最后,使用经过训练的SVM根据您最初输入的数据生成聚类。
因此,的想法是基于其他聚类模型开发具有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