假设我有一个无向加权连通图。我想将具有最高边缘值的顶点组合在一起(顶点度数)。使用聚类算法是一种方法。我可以考虑哪些聚类算法来完成这项任务?我希望这是清楚的;任何澄清问题,请询问。谢谢。什么聚类算法可以考虑图?
1
A
回答
1
主要有两种方法 - 给你的图作为输入到现有的工具,或使用你对这个图(以及其领域),以创建一个代表,然后在将其应用于机器学习方法的专业知识。
我会用第二种方法启动:
如果只有节点和边(每个节点没有进一步的数据),你首先需要考虑每个节点\边的表示。我将解释有关节点,但它应该在边缘情况下应该类似。
的最简单的方法就是将表示每个节点n
作为连接向量:
每个节点将被表示为n=(Ia(n),Ib(n),Ic(n),Id(n),Ie(n))
,其中Ii(n)=1
万一节点n
是的“朋友”(邻居)节点i
,否则为0。 (例如a=(0,1,1,0,1)
)
注意,您可以决定一个节点是其自身的朋友。
第二种方法,这是相当类似于第一个,是使用边缘的权重向量:
n=(W(a,n),W(b,n),W(c,n),W(d,n),W(e,n))
,其中W(i,n)
是边缘(i,n)
的重量。
有一些更多的方法来表示节点,但这是不够的,以在其上运行一些计算。
后,你有这样的表现,你就可以开始在其应用一些聚类算法。
kmeans是完成这个任务,并考虑sklearn has a great implementation很大。它有一些参数可以(也应该)配置(即距离度量)。
kmeans的乘积是k
不同的不相交节点组。
如果您想将图表传递给算法并获得一些度量,则可以应用更多高级算法。 community detection用于在图表中查找社区。再次,在networkx
包中有一个很好的python implementation。
相关问题
- 1. 什么哈希算法考虑了可变长度数据
- 2. 宏是什么类型的考虑?
- 3. matlab'fitctree'的CART算法考虑了属性顺序为什么?
- 4. Apriori算法的最终输出我们应该考虑什么
- 5. 要考虑点击什么?
- 6. 什么时候可以考虑使用危险的SetInnerHTML()安全?
- 7. 为什么区分方法时不考虑返回类型?
- 8. 考虑到可能的拼写错误,我可以使用什么gem /算法来查找字符串?
- 9. 考虑速度的A *算法
- 10. 其考虑以下
- 11. 锁定考虑Equals()运算
- 12. C# - 计算器,还有什么需要考虑和合并?
- 13. 聚集在elasticsearch考虑分数
- 14. .NET为什么“Anchor”不考虑Toolstrip?
- 15. 什么时候开始考虑缩放?
- 16. 为什么AutoConfigurationPackages不考虑@ComponentScan?
- 17. 部署iPads应该考虑什么?
- 18. 什么是PostgresSQL查询语言考虑?
- 19. 选择SQL/NoSQL应该考虑什么?
- 20. ConstructorInfo.Invoke的DynamicMethod,我需要考虑什么?
- 21. 为什么输出不考虑函数?
- 22. 为什么考虑_all_requests_local失败,rspec config
- 23. 为什么UITabBar会考虑Modal?
- 24. 马尔可夫聚类算法
- 25. 聚类视觉可分簇的算法
- 26. 考虑节点和边的图上的路径查找算法
- 27. 考虑以下BNF语法(BNF,递归)
- 28. 识别空间聚类在Python考虑到
- 29. 为什么我们应该将“Logger”类作为单例考虑?
- 30. 设计可伸缩Web架构时需要考虑什么