这个计算结果是,"Tony Parker" 和 Tim 有 5 个共同好友 , 最为亲密 。
NrOfMutualF
Tony Parker
5
Dejounte Murray
4
Manu Ginobili
3
Marco Belinelli
3
Danny Green
2
Boris Diaw
1
LaMarcus Aldridge
1
Tiago Splitter
1
下面 , 咱们通过可视化来验证一下这个结果吧!
先看看每一个好友的共同好友 (f:) 都是谁?
MATCH (start:player{name: "Tim Duncan"})-[:`follow`]-(f:player)-[:`follow`]-(fof:player),(start:player)-[:`follow`]-(fof:player)RETURN fof.player.name, collect(DISTINCT f.player.name);
结果如下:collect(distinct f.player.name)
Boris Diaw
["Tony Parker"]
Manu Ginobili
["Dejounte Murray", "Tiago Splitter", "Tony Parker"]
LaMarcus Aldridge
["Tony Parker"]
Tiago Splitter
["Manu Ginobili"]
Tony Parker
["Dejounte Murray", "Boris Diaw", "Manu Ginobili", "Marco Belinelli", "LaMarcus Aldridge"]
Dejounte Murray
["Danny Green", "Tony Parker", "Manu Ginobili", "Marco Belinelli"]
Danny Green
["Dejounte Murray", "Marco Belinelli"]
Marco Belinelli
["Dejounte Murray", "Danny Green", "Tony Parker"]
下面,我们上可视化工具 ——NebulaGraph Explorer 搞一搞这个结果:
首先,我们把 Tim 的两度好友路径全查出来
MATCH p=(start:player{name: "Tim Duncan"})-[:`follow`]-(f:player)-[:follow]-(fof:player)RETURN p
再按照出入度去渲染节点大?。?并选中 Tim 和 Tony,并在两者之间查询 follow 类型边、双向、最多 2 跳的全部路径:可以看出 Tim 和 Tony 是最亲密的朋友没跑了,而且他们的共同好友也在路径之中:
["Dejounte Murray", "Boris Diaw", "Manu Ginobili", "Marco Belinelli", "LaMarcus Aldridge"]
朋友圈子里的小群体上面提过由于这份数据集非真实,使得社区发现算法的结果不能得到其中洞察的内涵 。现在我们可以接着这个小的子图,来看看 Tim 的好友中可以如何区分群组、社区呢?
咱们先跑一个 Louvain 、弱联通分量、标签传播看看:
弱联通分量弱联通分量,可以把 Tim 的朋友们大体分割出两、三个相互不连通的部分 , 非常符合连通分量的直观理解和定义 。
标签传播标签传播,我们可以通过控制迭代次数按需去通过随机的传播划定出不同的划分度,结果可以有一定的区分度:
这是 20 次迭代的图:
这是 1,000 次迭代
LouvainLouvain,是一个比较高效、稳定的算法,基本上在这个子图下我们可以在很小的迭代次数下得到很符合直觉的划分:
新朋友推荐接着前面两度朋友(朋友的朋友)的思路,我们可以很容易把那些还不是朋友的两度朋友作为推荐添加的好友,而排序规则是他们之间的共同好友数量:
MATCH (start:player{name: "Tim Duncan"})-[:`follow`]-(f:player)-[:`follow`]-(fof:player)WHERE NOT (start:player)-[:`follow`]-(fof:player) AND fof != startRETURN fof.player.name, count(DISTINCT f) AS NrOfMutualF ORDER BY NrOfMutualF DESC;
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 客户欠货款不认账要怎么办理 客户欠货款不认账要怎么办
- 苹果13屏幕发黄怎么回事儿 苹果13屏幕发黄怎么回事
- 怎么看微信是哪一年注册的账号 怎么看微信是哪一年注册的
- 逃税86万怎么惩处他人 逃税86万怎么惩处
- 孩子学习没耐心怎么办 孩子没耐心怎么办培养
- 抖音极速版怎么发视频作品 抖音极速版怎么发视频
- 孩子上高一静不下心学习怎么办
- 小孩子静不下心学习怎么办 孩子静不下心来学东西怎么办
- 新买的车库门遥控器怎么对码 车库门遥控器怎么对码
- 电脑版qq音乐怎么看等级 qq音乐怎么看等级