neo4j实现Louvain算法

本文介绍了如何在Neo4j中使用Louvain算法进行社区检测。通过两个例子展示了无权属性图和有权属性图的算法执行过程,探讨了权重对社区划分的影响,并指出在考虑权重和迭代次数等因素后,算法能更好地符合实际需求。
摘要由CSDN通过智能技术生成


例子一:创建一个属性图(无权)

这次用的方法是本地load导入的,两个代码块分别导入节点、节点间关系。

    load csv with headers from "file:///sw-nodes.csv" as row
    merge (place:Place{id:row.id})
    load csv with headers from "file:///sw-relationships.csv" as row
    match (origin:Place{id:row.src})
    match (destination:Place{id:row.dst})
    merge (origin) - [r:DEPENDS_ON]->(destination)

一、属性图如下

在这里插入图片描述

二、实现算法

1.stream模式执行Louvain算法(匿名图)

CALL gds.louvain.stream({
    nodeProjection: 'Place',
    relationshipProjection: {
        TYPE: {
            type: 'DEPENDS_ON',
            orientation: 'undirected',
            aggregation: 'NONE'
        }
    },
    includeIntermediateCommunities:True
}) YIELD nodeId, communityId
RETURN gds.util.asNode
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值