Python交流学习

Python预测算法哪家强?权游龙妈是生还是凉凉?

2019-05-15  本文已影响0人  慌翯

这个世界上只有两种人,看「权游」(权利的游戏)的,和不看「权游」的。

你们心心念的权游终于迎来了最终季,狼家史塔克的家训「Winter is coming」终终终终终于是应验了,人类与异鬼的战争一触即发。各个主要角色的生死存亡你猜得到吗?

▲这个深刻诠释「凡人皆有一死」的热剧,扑朔迷离的剧情让观众对终局望眼欲穿

难道只能在一集集看完之后,才能知道你们牵挂的二丫会不会幸存,色后又会不会被二丫手刃?

面对这份煎熬,总有人按捺不住。比如,热爱代码的程序员们,就用算法分析权游里的故事,预测了角色的生存概率,以及谁最有可能登上铁王座。

有趣的是,不同的算法和团队,预测的结果大相径庭。比如慕尼黑工业大学(TUM)团队的算法,预测最终龙妈登上了铁王座;而另一种算法下,龙妈没能活过寒冬。

另外,还有一种神奇的「算法」是:Men all die.

所以,哪家预测的结果准确?各家都有各家的依据,看看他们都怎么做的。

01 机器学习预测龙妈要活到最后

TUM 的学生在计算机科学研讨会上做了一个有趣大胆的尝试:用数据科学和机器学习的方法,去预测权游中角色最后的存活机会。在「权力的游戏」第八季上映之前,算法就预测出各个角色的命运。

▲左:生存率排行榜,右:死亡率排行榜

这份结论中,龙妈存活的几率最高( 99% ),她的国王之手小恶魔也有 97% 的存活率。难道是龙妈最后统领了各大家族?而狡猾又善于自保的波隆以 93.5% 位居死亡顺序的首位。

这个结果从哪儿得来?

TUM 团队的分析数据是从《冰与火之歌》的书中,权游的台词里,以及粉丝圈在维基百科上的内容搜集而来。用于预测的信息包括:角色所属的家族,是否已婚,以及他们的盟友等情况。

他们提取了数百个角色的特征数据集,梳理了故事中角色的信息。除了诸如性别和地位等数据外,还考虑了元数据信息:比如某人是主要角色还是次要角色,以及他们在维基百科等渠道中被引用的频率。

通过这些数据,利用算法分析,揭示出了关于权游中死亡率的一些趋势,例如男性比女性更危险(男性死亡率 22%, 而女性为 11% )。

在预测趋势的同时,为了对每个角色的命运进行预测,团队使用了两个单独的模型:第一种是贝叶斯推断方法,使用 pymc3 封装的 MCMC 方法来训练贝叶斯生存分析模型;第二个涉及机器学习和神经网络,在 Python 的 Keras 框架下进行。

▲铁王座还是死亡,到底谁说了算

学习从来不是一个人的事情,要有个相互监督的伙伴,工作需要学习C/C++或者为了入行、转行学习C/C++的伙伴可以私信回复小编“学习”领取全套免费C/C++学习资料、视频

他们的工作或许会有些效果。早在 2016 年,在第 6 季播出之前,TUM 同一课程的学生就创建了一个算法,准确预测了囧诺的复活。

02 利用文本分析:龙妈要狗带?

你要相信,有同样好奇心的人,肯定不止一位。

另一位数据科学家 Peter Vesterberg 通过对原著小说的文本分析,去预测最终季的剧情走向。

Peter 认为剧情的走向是人物间的关系所支撑的,通过分析了《冰与火之歌》已经出版的五本书,使用网络理论计算出角色间的相互关系,用可视化的方式呈现出来,综合人物的重要性判断最后的存活几率。

他用一个点来代表人物,根据冰火故事中的文本,利用词性标注,相似度度量等方法,定义了角色之间的「接近」程度,越接近和越频繁地出现两个名字,他们的联系就越多。

判断一个角色与其他角色的关联性的方法,主要用了四个关键概念:

度中心性——与该节点直接连接的节点占节点总数的比例;

接近中心性——对于一个结点而言,距离其它结点越近,那么它的中心度越高 ;

中介中心性——量化该节点充当其他两个节点之间最短路径的桥梁的次数 ;

特征向量中心性——一个节点的重要性既取决于其相邻节点的数量,也取决于其相邻节点的重要性。

通过这些概念的分析,得到关系值的「权重」数字。最终得到一份关于人物关系的图谱,线条的粗细表示了人物联系的紧密程度,最后的结点大小代表了角色的重要性。这份重要性指标也显示了会被作者「除去」的可能。

具体的指标排名如下:

▲四个分析指标的具体排名数值,囧诺( Jon )都是领跑

在这样的分析下,囧诺毫无疑问是最重要的角色,难道这个生于龙家,长于狼家的疑似 RMB 玩家,最终会登上铁王座?重要程度紧随其后的,是智力担当小恶魔和弑君者詹姆。

从网络理论的角度来看,龙妈丹妮莉丝似乎是前期撒币太多,后期估计是金币不够,只是处在关系网的边缘,看来大概率是要凉了。

03 预测不只是为了娱乐,更是拥有现实意义

对于结果迥异的不同算法,到底哪个更胜一筹,我们不得而知,也许只有在大结局到来时候,才能知晓。但他们使用的方法,都不只是闹着玩,而是拥有实际的利用价值。

TUM 开发的生存几率算法,来自于一个严肃的学习项目。他们设立这项课程的主要的目的,是帮助学生将学习如何设计,开发和部署智能计算机系统。

该项目的首席导师 Guy Yachdav 博士说:「虽然预测权力游戏人物生存机会,依赖于从幻想世界中获取的数据,但在现实世界中,使用完全相同的人工智能技术,也会对我们的日常生活产生重大影响。」

▲Guy Yachdav 博士在 TED 演讲中介绍预测算法能够解决现实世界中的问题

负责 TUM 信息学系生物信息学主任的 Burkhard Rost 教授说:「激情与教学的结合是创造新工具的绝佳方式。在 TUM 的课程中,我们找到了这种有趣的方式,去教学生如何使用这项技术。」

目前,在现实世界中,类似的算法可用于医学和金融,例如使用综合信息分析预测健康情况 。这种技术类似于分析研究治疗方法或并发症对癌症患者的影响。

而对于数据学家 Peter 所做的事情,除了分析角色的存活,还从数字的角度去分析了「冰与火之歌」小说的各种书写规律,用数据去解析一本小说的元素。

也许,掌握这一模式之后,未来小说家和编剧就可以使用人工智能快速地生成新内容,这样就不会眼睁睁看着马丁大大一直补不上的坑了。

04 想预测「复联」最后活下来的英雄吗?

热闹的 4 月,似乎又是一个落幕的季节,除了权游最终季,复仇者联盟也要在下周三迎来大结局,想必很多人还没从灭霸那个响指中缓过来,那个非要安静看落日的狠人,就那么随机毁灭了一半的宇宙。

这个任性的死亡速度,估计 AI 也无法预测出来了。但是,如果你还是好奇心太重,想自己动手试一试的话,那么 TUM 团队的项目开源地址在此:

https://api.got.show/doc/

但其实,不需要 AI 预测,复联 4 应该也是一个最优结局,毕竟奇异博士类似穷举法,或者说试错法之类的操作,把希望留给复联世界:他用时间宝石尝试了 14000605 种可能后,选择了唯一会胜利的那条。

奇异博士的这种精神,用来写代码的话估计也是极好的。

05 百科知识

词性标注 Part-of-Speech Tagging

词性标注(POS tagging ) 是将对句子中的词语进行分类标注的过程。是依据字词在句法结构或语言形态上承担的成分,通过词性分类赋予每个词的词性标记的过程。

也就是要确定句子中每个词是名词、动词、形容词或其他词性的过程,又称词类标注或者简称标注。

词性标注是自然语言处理中的一项基础任务,在语音识别、信息检索及自然语言处理的许多领域都有应用。

词性标注实现的方法

可以分为基于规则和基于统计的方法,主要有:

(1)基于最大熵的词性标注

(2)基于统计最大概率输出词性

(3)基于 HMM 的词性标注

词性标注的应用

(1)句法分析预处理

(2)词汇获取预处理

(3)信息抽取预处理

上一篇下一篇

猜你喜欢

热点阅读