查看原文
其他

TensorFlow 坐庄,预测谁是最强神奇宝贝

小神经 超神经HyperAI 2019-05-13

By 超神经


今年的 7 月 13 号是《Pokemon Go》发布两周年的日子,游戏虽然没有登录中国市场,但是不影响这款经典大 IP 收割全球用户。最近的收入榜单上,《Pokemon Go》是全球收入第四的移动游戏,仅次于《王者荣耀》、《QQ飞车》和《梦幻西游》,也就是说《Pokemon Go》是全球非中国移动游戏中,收入最高的产品。


也有一帮无聊又中二的工程师小哥哥,成功通过机器学习模型,预测出《Pokemon GO》不同精灵间的对战结果。




《Pokemon GO》2016 年 9 月上线,红极一时。游戏是由任天堂、The Pokemon Company 口袋妖怪公司和 Google 的 Niantic Labs 公司联合制作开发。


其中口袋妖怪负责内容支持、设计游戏和故事内容;Niantic 负责技术支持、为游戏提供 AR 技术,而任天堂在其中负责游戏开发、全球发行。


游戏主要利用 AR 技术,玩家可以通过手机在现实世界里捕捉宠物小精灵,进行战斗。


游戏中有 800 多只宠物小精灵,被分配在不同的阵营里,每只精灵都有不同的属性,包括攻击、防御、命中、速度等。


展示其中一些宠物小精灵的属性值


哥达鸭算是神奇宝贝里最强龙套


这些属性值就是机器学习模型预测结果的数据集,目前,模型主要通过「构建分类器、训练分类器和测试分类器」三步来完成。


构建分类器


分类器主要用于将数据进行分类,比如给定一个图像,把它归类为狗或者猫。比较常用的是随机森林分类器,它是的工作原理是基于多个决策树对样本数据进行训练和预测。


决策树分类器


简单聊聊决策树,假设给定我们一些关于动物类别、身高、体重、速度等信息,要求我们据此推断出该动物是猫,还是狗或者其他,就可以通过决策树来实现。



如上图所示,在决策树的每个节点都会产生一个问题,根据问题的答案可以进一步划分出子树,然后整个过程不断重复,直至我们确定该动物是猫,还是狗。


可见,决策树分类器的优势在于,给定一个数据集,它能在每个节点提出正确的问题(即找出增益信息),从而划分树,增加对每个预测的准确度。


随机森林分类器


随机森林分类器就是多个决策树分类器的集合,与使用单一决策树相比,这种方法可以得到更好的结果,实用性也更强。


好了,现在开始构建这个随机森林分类器。如下所示:n_estimators 给出用于创建随机森林的决策树的数量为 100。



训练分类器


以小精灵们各自的属性值为数据集(即 x_train),通过这些数据集来训练分类器,并使预测值和实际值(即 y_train)在训练集上的损失最小化。


整个分类器的训练需要通过确定不同属性值间的关系来实现,最终,随机森林分类器的准确率达到 95% 以上。


测试分类器


在实际预测中,所使用的数据集仍是所有精灵的属性值,随机森林分类器通过这些数值预测结果。


大岩蛇、波波兽、吸盘魔偶 和 哥达鸭 是《Pokemon GO》中的 4 个角色,这个模型模型将分别预测 大岩蛇 VS 波波兽 以及 吸盘魔偶 VS 哥达鸭 的结果。


预测结果:大岩蛇胜出


预测结果:吸盘魔偶胜出


这样的对战此前并没有在《Pokemon GO》中出现过,如果你正在玩这款游戏,不妨跟朋友一起试试,看看结果是否真如这个模型预测的一样。


项目已经由工程师小哥哥们发布在 Github 了,有兴趣的其他小伙伴们也可以了解一下。


超神经小百科

单词

outlier

 ['aʊtˌlaɪə]  n. 离群值、异常值  


词组

generalization error 泛化误差


历史文章(点击图片阅读)

《如何用 AI 实现了童年的中二梦想》

《几位 AI 工程师,开源了自己的撩妹项目》

《AI 放大招,可能终结勇士骑士的粉丝骂战》

超神经HyperAI

换个姿势看科技

关注

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存