SDN网络拓扑图聚类求助:指定簇数算法及FastRP-kmeans结果异常
SDN拓扑图聚类需求与问题
我手头有一个包含62,578个节点的大规模SDN(软件定义网络)拓扑网络,目标是将其划分成若干簇,每个簇由一台SDN控制器负责管控。
已尝试方案的局限
- 使用k-means算法:仅依赖节点自身属性,完全忽略节点间的关联关系,不符合网络拓扑聚类的需求;
- 使用相似性算法:仅能计算两两节点的相似度并生成新关联,但无法为k-means提供可用的输入。
问题1:如何让Louvain/Leiden算法支持指定簇数?
Louvain和Leiden算法默认不支持预先指定簇数,有没有办法修改或搭配其他方法,让这两种算法可以按照指定的簇数进行聚类?
问题2:FastRP+k-means聚类异常及参数疑问
在6,301节点的子图上,我用FastRP生成节点嵌入(初始嵌入维度设为256),再用k-means(k=2)聚类,结果出现大量相邻节点被分到不同簇的异常情况;调整嵌入维度为2、4等,以及在8,846节点的图上测试,该问题依然存在。另外,之前使用FastRP时未指定随机种子,想请教:
- 如何为FastRP设置随机种子?
- 该参数是否与图的规模相关?
相关代码
CALL gds.graph.project ( 'myGraph', 'node', 'to', { relationshipProperties: 'cost' } ) CALL gds.fastRP.write ( 'myGraph', { embeddingDimension: 1, writeProperty: 'fastrp-embedding' } ) YIELD nodePropertiesWritten CALL gds.graph.project ( 'myGraph_1', { node: { properties: 'fastrp-embedding' } }, '*' ) CALL gds.alpha.kmeans.write ('myGraph_1', { nodeProperty: 'fastrp-embedding', k: 3, randomSeed: 42, writeProperty: 'kmeans' }) YIELD nodePropertiesWritten
聚类异常情况说明
- 子图截图1:直观可见大量相邻节点被标记为不同簇的颜色,跨簇相邻现象突出
- 子图截图2:另一子图视角下,同样存在大量相邻节点分属不同簇的问题
内容的提问来源于stack exchange,提问作者Sama
相关产品推荐
相关产品推荐

