本届世界杯冠军是谁?我们用ChatGPT和图数据库一起预测
图片也是用OpenAIDALLE2生成,并用DALLE2Outpainting扩充的
本文转载自悦数科技,作者古思为。
蹭ChatGPT热度
最近因为世界杯正在进行,我受到这篇CambridgeIntelligence的文章启发(在这篇文章中,作者仅仅利用有限的信息量和条件,借助图算法的方法做出了合理的冠军预测),想到可以试着用图数据库NebulaGraph玩玩冠军预测,还能顺道科普一波图库技术和图算法。
本来想着几个小时撸出来一个方案,但很快被数据集的收集工作劝退了,我是实在懒得去FIFA2022的维基抓取所需的数据,索性就搁浅、放了几天。
同时,另一个热潮是上周五OpenAI发布了ChatGPT3服务,它可以实现各种语言编码。ChatGPT可实现的复杂任务设计包括:
随时帮你实现一段指定需求的代码
模拟任意一个prompt界面:shell、python、virtualmachine、甚至你创造的语言
带入给定的人设,和你聊天
写诗歌、rap、散文
找出一段代码的bug
解释一段复杂的正则表达式的含义
ChatGPT的上下文联想力和理解力到了前所未有的程度,以至于所有接触它的人都在讨论新的工作方式:如何掌握让机器帮助我们完成特定任务。
所以,当我试过让ChatGPT帮我写复杂的图数据库查询语句、解释复杂图查询语句的含义、解释一大段Bison代码含义之后,我突然意识到:为什么不让ChatGPT帮我写好抓取数据的代码呢?
抓取世界杯数据
我真试了下ChatGPT,结果是:完全可以,而且似乎真的很容易。
整个实现过程,基本上我像是一个代码考试的面试官,或是一个产品经理,提出我的需求,ChatGPT给出具体的代码实现。我再试着运行代码,找到代码中不合理的地方,指出来并给出建议,ChatGPT真的能理解我指出的点,并给出相应的修正,像是:
让chatGPT写抓取世界杯数据的代码
这一全过程我就不在这里列出来了,不过我把生成的代码和整个讨论的过程都分享在这里,感兴趣的同学可以去看看。
最终生成的数据是一个CSV文件:
代码生成的文件worldcupsquads。csv
手动修改、分开了生日和年龄的列worldcupsquadsv0。csv
上面的数据集包含的信息有:球队、小组、编号、位置、球员名字、生日、年龄、参加国际比赛场次、进球数、服役俱乐部。
Team,Group,No。,Pos。,Player,DOB,Age,Caps,Goals,Club
Ecuador,A,1,1GK,HernnGalndez,(19870330)30March1987,35,12,0,Aucas
Ecuador,A,2,2DF,FlixTorres,(19970111)11January1997,25,17,2,SantosLaguna
Ecuador,A,3,2DF,PieroHincapi,(20020109)9January2002,20,21,1,BayerLeverkusen
Ecuador,A,4,2DF,RobertArboleda,(19911022)22October1991,31,33,2,SoPaulo
Ecuador,A,5,3MF,JosCifuentes,(19990312)12March1999,23,11,0,LosAngelesFC
这是手动删除了CSV表头的数据集worldcupsquadsnoheaders。csv。
数据集部分截图
图方法预测2022世界杯图建模
本文用到了图数据库NebulaGraph和可视化图探索工具NebulaGraphExplorer,你可以在阿里云免费申请半个月的试用(申请使用云端NebulaGraph)。
图建模(GraphModeling)是把真实世界信息以点边的图形式去抽象与表示。
这里,我们把在公共领域获得的信息映射成如下的点与边:
点:
player(球员)
team(球队)
group(小组)
club(俱乐部)
边:
groupedin(球队属于哪一小组)
belongto(队员属于国家队)
serve(队员在俱乐部服役)
而队员的年龄、参加国际场次(caps)、进球数(goals)则很自然作为player这一类点的属性。
下图是这个schema在NebulaGraphStudioExplorer(后边称StudioExplorer)中的截图:
schema在NebulaGraphStudioExplorer中的截图
我们点击右上角的保存后,便能创建一个新的图空间,将这个图建模应用到图空间里。
这里可以参考下Explore草图的文档:https:docs。nebulagraph。com。cn3。3。0nebulaexplorerdbmanagementdraft
导入数据进NebulaGraph
有了图建模,我们可以把之前的CSV文件(无表头版本)上传到Studio或者Explorer里,通过点、选关联不同的列到点边中的vid和属性:
来自转载
完成关联之后,点击导入,就能把整个图导入到NebulaGraph。成功之后,我们还得到了整个csvNebulaImporter的关联配置文件:nebulaimporterconfigfifa。yml,你可以直接拖拽整个配置,不用自己去配置它了。
来自转载
这里可以参考Explorer数据导入的文档:https:docs。nebulagraph。com。cn3。3。0nebulaexplorerdbmanagement11。importdata
数据导入后,我们可以在schema界面查看数据统计。可以看到,有831名球员参加了2022卡塔尔世界杯,他们服役在295个不同的俱乐部:
来自转载
这里我们用到了Explorer的schema创建的文档:https:docs。nebulagraph。com。cn3。3。0nebulaexplorerdbmanagement10。createschema6
探索数据查询数据
下面,我们试着把所有的数据展示出来看看。
首先,借助NebulaGraphExplorer,我用拖拽的方式画出了任意类型的点(TAG)和任意类型点(TAG)之间的边。这里,我们知道所有的点都包含在至少一个边里,所以不会漏掉任何孤立的点。
来自转载
让Explorer它帮我生成查询的语句。这里,它默认返回100条数据(LIMIT100),我们手动改大一些,将LIMIT后面的参数改到10000,并让它在Console里执行。
来自转载
初步观察数据
结果渲染出来是这样子,可以看到结果自然而然地变成一簇簇的模式。
来自转载
这些外围、形成的簇多是由不怎么知名的足球俱乐部,和不怎么厉害的国家队的球员组成,因为通常这些俱乐部只有一两个球员参加世界杯,而且他们还集中在一个国家队、地区,所以没有和很多其他球员、国家队产生连接。
来自转载
图算法辅助分析
在我点击了Explorer中的两个按钮之后,在浏览器里,我们可以看到整个图已经变成:
来自转载
这里可以参考Explorer的图算法文档:https:docs。nebulagraph。com。cn3。3。0nebulaexplorergraphexplorergraphalgorithm2
其实,Explorer这里利用到了两个图算法来分析这里的洞察:
1。利用点的出入度,改变它们的显示大小突出重要程度
2。利用Louvain算法区分点的社区分割
可以看到红色的大点是鼎鼎大名的巴塞罗那,而它的球员们也被红色标记了。
预测冠军算法
为了能充分利用图的魔法(与图上的隐含条件、信息),我的思路是选择一种利用连接进行节点重要程度分析的图算法,找出拥有更高重要性的点,对它们进行全局迭代、排序,从而获得前几名的国家队排名。
这些方法其实就体现了厉害的球员同时拥有更大的社区、连接度。同时,为了增加强队之间的区分度,我准备把出场率、进球数的信息也考虑进来。
最终,我的算法是:
取出所有的(球员)服役(俱乐部)的关系,过滤其中进球数过少、单场进球过少的球员(以平衡部分弱队的老球员带来的过大影响)
从过滤后的球员中向外探索,获得国家队
在以上的子图上运行BetweennessCentrality算法,计算节点重要度评分
算法过程
首先,我们取出所有进球数超过10,场均进球超过0。2的(球员)服役(俱乐部)的子图:
子图截图
为了方便,我把进球数和出场数也作为了serve边上的属性了。
来自转载
然后,我们全选图上的所有点,点击左边的工具栏,选择出方向的belongto边,向外进行图拓展(遍历),同时选择将拓展得到的新点标记为旗帜的icon:
来自转载
现在,我们获得了最终的子图,我们利用工具栏里的浏览器内的图算法功能,执行BNC(BetweennessCentrality)
来自转载
最后,这个子图变成了这样子:
来自转载
预测结果
最终,我们根据BetweennessCentrality的值排序,可以得到最终的获胜球队应该是:巴西!
其次是比利时、德国、英格兰、法国、阿根廷,让我们等两个礼拜回来看看预测结果是否准确吧:D。
注:排序数据(其中还有非参赛球队的点)
预测结果
原文地址:https:discuss。nebulagraph。com。cnttopic11584
平民九五丝滑速成,技能流星雨视觉盛宴大家好,我是江湖人称一条柴,今天带来一个超级强力的上分阵容,纵横各个分段,大成期,技能频率超级快,享受视觉盛宴。9人口最终阵容希维尔加里奥迦娜厄斐琉斯,然后就是各种五费英雄,也可以
2022最后一个月,日本市场又杀出个小爆款?新瓶旧酒。文依光流原本以为今年海外二游战事已经打完,不过回看12月,葡萄君发现又一款新品想要成为影之实力者花园之主拿下日本免费榜第1畅销榜15。这款产品由角川授权Aiming研发和
世冠小组赛大结局,淘汰赛4强毫无悬念,AG很难突破8强魔咒经过2周的鏖战之后,世冠小组赛已经全部结束了,16支正赛队伍还剩下最后的8强,他们将展开激烈的淘汰赛争夺。从最终的晋级情况来看,和粉丝们之前的预测如出一辙,8支海外战队全部淘汰,而
世界杯决赛周末FIFA23将提供免费试玩EA宣布在FIFA世界杯决赛周末期间将提供FIFA23游戏免费试玩,这包括了FIFAWorldCup模式锦标赛模式以及FIFA23UT模式,时间从12月16日一直持续到12月20日
英占时期香港老照片抗日战争结束后虽然日本人走了,但香港依旧是殖民地,因为根据南京条约的内容香港租期还没到,香港依旧被英国人所占领着。1950年代香港人口激增至220万人,但能够安置如此之多的住房没有
今晚开播!两部剧同时上新,聚焦热门题材,演员阵容不错临近2022年收官,目前上星剧场大家关注的则是胡歌吴越李光洁主演的县委大院,正午阳光与胡歌再次联袂赚足了噱头,万茜刘涛黄磊等全明星阵容可以说是演技大PK。随着赵丽颖转型大剧风吹半夏
柔韧度堪比少女!香港名模晒高难度瑜伽,未婚先孕为富商生了两子本文编辑剧透社issac未经授权严禁转载,发现抄袭者将进行全网投诉香港知名模特女演员Rosemary(虹萱),不知不觉今年都已经41岁了!不知道,当年Rosemary当年在荧幕上精
浙江稠州10194北京首钢,盖利337,浙江稠州豪取13连胜12月15日晚,2223赛季CBA常规赛第十三轮继续进行,排名联赛第一,已经13连胜的浙江稠州金租迎来北京首钢的挑战。首发阵容浙江稠州银行余嘉豪刘泽一王奕博盖利陆文博北京首钢范子铭
漫步广州北京路探索这座千年商都的起点初到广州,先去哪里逛逛答案一定是北京路。探索广州这座千年商都的起点,没有比这里更合适,这条有着2000多年历史的古代传统中轴线,而线上的镇街之宝莫过于人生沸鼎的步行街中,安静的停留
探索古代朝鲜揭开朝鲜的爱情与真面目人类的本能是什么呢?为了吃,为了繁衍后代,生存是当务之急的现实问题,繁殖是即将来临的未来问题。人类自诞生至地球上以来,时常感到饥肠辘辘,为了解决当下的饥饿,便将未来铐上了枷锁。图百
大唐名将薛仁贵的一生真有演义和影视剧中那么传奇吗?三箭定天山神勇收辽东的火头军老大薛仁贵,真实的历史中的他真的和演义中一样吗?在我们看过的薛仁贵征东中,薛仁贵乃是白虎星君转世,在同为白虎转世的隋唐第七条好汉冷面寒枪俏罗成(历史原型