来自转载
这里可以参考 Explorer 数据导入的文档:https://docs.nebula-graph.com.cn/3.3.0/nebula-explorer/db-management/11.import-data/
数据导入后,我们可以在 schema 界面查看数据统计。可以看到,有 831 名球员参加了 2022 卡塔尔世界杯,他们服役在 295 个不同的俱乐部:
来自转载
这里我们用到了 Explorer 的 schema 创建的文档:https://docs.nebula-graph.com.cn/3.3.0/nebula-explorer/db-management/10.create-schema/#_6
探索数据查询数据下面,我们试着把所有的数据展示出来看看。
首先,借助 NebulaGraph Explorer,我用拖拽的方式画出了任意类型的点(TAG)和任意类型点(TAG)之间的边。这里,我们知道所有的点都包含在至少一个边里,所以不会漏掉任何孤立的点。
来自转载
这里可以参考 Explorer 的图算法文档:https://docs.nebula-graph.com.cn/3.3.0/nebula-explorer/graph-explorer/graph-algorithm/ 2
其实,Explorer 这里利用到了两个图算法来分析这里的洞察:
1. 利用点的出入度,改变它们的显示大小突出重要程度
2. 利用 Louvain 算法区分点的社区分割
可以看到红色的大点是鼎鼎大名的巴塞罗那,而它的球员们也被红色标记了。
预测冠军算法为了能充分利用图的魔法(与图上的隐含条件、信息),我的思路是选择一种利用连接进行节点重要程度分析的图算法,找出拥有更高重要性的点,对它们进行全局迭代、排序,从而获得前几名的国家队排名。
这些方法其实就体现了厉害的球员同时拥有更大的社区、连接度。同时,为了增加强队之间的区分度,我准备把出场率、进球数的信息也考虑进来。
最终,我的算法是:
● 取出所有的 (球员)-服役->(俱乐部) 的关系,过滤其中进球数过少、单场进球过少的球员(以平衡部分弱队的老球员带来的过大影响)
● 从过滤后的球员中向外探索,获得国家队
● 在以上的子图上运行 Betweenness Centrality 算法,计算节点重要度评分
算法过程首先,我们取出所有进球数超过 10,场均进球超过 0.2 的 (球员)-服役->(俱乐部) 的子图:
来自转载
然后,我们全选图上的所有点,点击左边的工具栏,选择出方向的 belongto 边,向外进行图拓展(遍历),同时选择将拓展得到的新点标记为旗帜的 icon:
来自转载
预测结果最终,我们根据 Betweenness Centrality 的值排序,可以得到最终的获胜球队应该是:巴西 !
其次是比利时、德国、英格兰、法国、阿根廷,让我们等两个礼拜回来看看预测结果是否准确吧 :D。
注:排序数据(其中还有非参赛球队的点)
预测结果
原文地址:https://discuss.nebula-graph.com.cn/t/topic/11584
花粉社群VIP加油站
猜你喜欢