前言

如今,只要随便进入一个网吧,都会发现玩《英雄联盟》的人是最多的,可以这么说,《英雄联盟》已经是当之无愧的端游一哥。而在拥有如此基数玩家的《英雄联盟》,已经不仅仅是一个电竞游戏这么简单了,它还带给了我们无数的欢乐。

问君能有几多愁,辅助闪现抢人头;问君能有几多愁,卡牌千里送人头。问君能有几多愁,皇子开大关队友;清明时节雨纷纷,各种队友各种坑。别人笑我不买眼,我笑别人浪费钱;孤帆远影碧空尽,草丛惊现蛮易信 。相见时难别亦难,碰见赵信菊花残;我自横刀向天笑,剁人只需用三刀。苦练盲僧千百次, 盲目对战 N 多次;战输不下五十次, 砸得鼠标要出事;举杯邀明月,草丛遇盖伦。

前几天写了一篇关于吃鸡游戏的分析用 Python 分析了 1w 场吃鸡数据,原来吃鸡要这么玩!帮助小胖提升了吃鸡率。鉴于“二百斤灵魂”小胖舍友不仅痴迷于吃鸡类游戏,还非常喜欢 LOL,所以为了帮助他每天尽快拿到首胜,爬取并分析了 1982 余场 LOL 数据。非常神奇的是,在开局之前能够高概率的预测本局的胜负!让你提前做好心理准备。

假设

  • 假设没有王者等大神代玩小号

  • 假设没有代练

  • 假设没有因为半途被媳妇抓到而挂机的行为

游戏对战数据获取

国服:腾讯游戏平台非官方 API —— http://www.games-cube.com/

外服:Riot 开发者平台 API —— https://developer.riotgames.com/

连接数据库:

import numpy as npimport pymysql, random, json

def connect_db(database): try:   conn = pymysql.connect(host='localhost', port=3306, user='root', password='zandaoguang', db=database, charset='utf8')   return conn except:   print ('Exception: MySQL Connection')   return None

分析和训练数据

利用神经网络(neural_network)、随机森林(random_forest)和支持向量机(support_vector)等若干智能算法进行训练和回归,最终进行比较效果。

下面为神经网络部分代码:

from __future__ import print_functionimport numpy as np#np.random.seed(1337)  # for reproducibilityfrom keras.datasets import mnistfrom keras.models import Sequential, load_modelfrom keras.layers import Dense, Dropout, Activation, Flattenfrom keras.layers import Convolution2D, MaxPooling2Dfrom keras.utils import np_utilsfrom keras import backend as Kfrom keras.optimizers import SGD, Adam, RMSpropimport gzipimport sysfrom six.moves import cPicklefrom fetcher import *

batch_size = 256nb_classes = 2nb_epoch = 100

champion_dict = fetch_champion_dict("champion136.json")champion_num = len(champion_dict)X_train = X_train.astype('int8')X_test = X_test.astype('int8')print('X_train shape:', X_train.shape)print(X_train.shape[0], 'train samples')print(X_test.shape[0], 'test samples')

Y_train = np_utils.to_categorical(y_train, nb_classes)Y_test = np_utils.to_categorical(y_test, nb_classes)

model = Sequential()model.add(Dense(1500, input_dim = champion_num, init='uniform'))model.add(Activation('sigmoid'))model.add(Dense(2))model.add(Activation('softmax'))model.summary()model.compile(loss='categorical_crossentropy',             optimizer=RMSprop(),             metrics=['accuracy'])history = model.fit(X_train, Y_train,                   batch_size=batch_size, nb_epoch=nb_epoch,                   verbose=1, validation_data=(X_test, Y_test))score = model.evaluate(X_test, Y_test, verbose=0)print('Test score:', score[0])print('Test accuracy:', score[1])

随机森林代码:

from sklearn.ensemble import RandomForestClassifierfrom sklearn.externals import joblibfrom fetcher import *champion_dict = fetch_champion_dict("champion136.json")champion_num = len(champion_dict)X_train, y_train, X_test, y_test = fetch_one_side_riot('12', 'MATCHED_GAME', 'KING_PORO', 'KINGPORO', ('1492660800000', '1493740800000'), champion_dict)clf = RandomForestClassifier(n_estimators=500, n_jobs=2)clf.fit(X_train, y_train)train_score = clf.score(X_train, y_train)print ("Train Score = "+str(train_score))test_score = clf.score(X_test, y_test)print ("Test Score = "+str(test_score))

支持向量机代码:

from sklearn.externals import joblibfrom sklearn import svmfrom fetcher import *champion_dict = fetch_champion_dict("champion136.json")champion_num = len(champion_dict)X_train, y_train, X_test, y_test = fetch_one_side_riot('12', 'MATCHED_GAME', 'ARAM_UNRANKED_5x5', 'ARAM', ('1492660800000', '1493740800000'), champion_dict)clf = svm.SVC()clf.fit(X_train, y_train)train_score = clf.score(X_train, y_train)print ("Train Score = "+str(train_score))test_score = clf.score(X_test, y_test)print ("Test Score = "+str(test_score))

游戏对战胜负预测

根据双方英雄阵容,预测获胜方的准确率(%)

作者注:由于阿广近期没有玩英雄联盟,所以分析的数据为 2017 年的游戏数据。

只根据本方英雄阵容,预测本方能否获胜的准确率(%)

期望研究的问题

  • LOL 中游戏胜利是否与能性别有关?

  • LOL 的胜率是否和每天的时间段有关系?

  • 在女朋友阻止自己玩游戏的情况下,LOL 的胜率下降多少?如何解决?

注:由于数据量太小,以后能收集到更多的数据,是希望可以对上面以及更多的方向进行研究。

结论

  • LOL 取得最后胜利的三个重要因素为:团队阵容、团队水平,配合默契程度。

  • 合理地分配 BUFF 也是游戏胜利的必要因素。

  • 打游戏的心态也是游戏胜利一个不可或缺的条件。

写在最后

虽然我们通过机器学习算法可以预测这把的输赢,但是这毕竟不是我们最后的结果。玩英雄联盟和爱情类似,明明知道是我们不可能,却坚持去追求,这正是爱的美丽。也许没有什么结果,可那过程本身的美丽便足够用一生去品味。

我有一个兄弟,沉迷这个游戏耗费了数年光阴,至今二十好几还流连网吧不返,家人反目。当然游戏本身是没有错的,我也不是责怪游戏,它本质不过是娱乐,从古至今皆有之,只是形式一直在变化,越来越吸引人。明知道每按一次键盘便使自己堕落到更深的深渊,但却无法阻止双手伴随激动的情绪抽动,可悲的人。

极度沉迷游戏的人啊,把你有限的生命留在无限的游戏里吧,那你的灵魂到离开那一刻都是充满成就的。即使后来新闻报道中会出现一个猝死在网吧被人当成笑话嘲笑的懦夫!

本文为作者投稿,版权归作者所有。

作者简介:阿广,本文首发于个人公众号「视学算法」。

「视学算法」是专注于大数据、人工智能和算法的学习平台,也是一个保送中科院软件研究所直博生的自留地。人生苦短,我愿做您最忠实的技术支持伙伴!一起用代码改变世界!


推荐阅读:

荐号

区块链大本营,是区块链开发者的基地,从这里出发,让区块链回归技术与应用的本质!

点击“阅读原文”,打开 APP 阅读更顺畅!

用 Python 分析了 1982 场英雄联盟数据,开局前预测游戏对局胜负!相关推荐

  1. 用Python分析了1982场英雄联盟数据,开局前预测游戏对局胜负!

    微信改版,加星标不迷路! 用Python分析如何打好英雄联盟? 作者:阿广 概述 前言 假设 游戏对战数据获取 分析和训练数据 游戏对战胜负预测 期望研究的问题 结论 阿广说 推荐阅读 前言 如今,只 ...

  2. python英雄对战代码_用 Python 分析了 1982 场英雄联盟数据,开局前预测游戏对局胜负!...

    前言 如今,只要随便进入一个网吧,都会发现玩<英雄联盟>的人是最多的,可以这么说,<英雄联盟>已经是当之无愧的端游一哥.而在拥有如此基数玩家的<英雄联盟>,已经不仅 ...

  3. python读取游戏数据_用Python抓取并分析了1982场英雄联盟数据,教你开局前预测游戏对局胜负!...

    英雄联盟想必大多数读者不会陌生,这是一款来自拳头,由腾讯代理的大型网络游戏,现在一进网吧,你就能发现一大片玩英雄联盟的人.在2017年中国战队无缘鸟巢的世界总决赛后,一大片人选择了弃游,只是终究没躲过 ...

  4. 用Python抓取并分析了1982场英雄联盟数据,教你开局前预测游戏对局胜负!

    英雄联盟想必大多数读者不会陌生,这是一款来自拳头,由腾讯代理的大型网络游戏,现在一进网吧,你就能发现一大片玩英雄联盟的人.在2017年中国战队无缘鸟巢的世界总决赛后,一大片人选择了弃游,只是终究没躲过 ...

  5. 用Python分析了1w场吃鸡数据,原来吃鸡要这么玩!

    微信改版,加星标不迷路! 用Python分析如何才能高效吃鸡? 作者:阿广 概述 前言 获取数据 观察数据 数据处理 吃鸡到底和哪个数据相关性最强? 分析热度图 期望研究的问题 结论 阿广说 推荐阅读 ...

  6. 用 Python 分析了 10000 场吃鸡数据,原来吃鸡要这么玩!

    作者 | 阿广 责编 | 屠敏 前言    绝地求生在国内火的一塌糊涂的时候,一款名叫 Fortnite 的游戏在国外刮起了堡垒旋风,这款同样为大逃杀玩法的沙盒类游戏,在绝地求生逐渐走低的形势下,堡垒 ...

  7. Python解析英雄联盟数据,教你带妹上分啦!

    前言 如今,只要随便进入一个网吧,都会发现玩<英雄联盟>的人是最多的,可以这么说,<英雄联盟>已经是当之无愧的端游一哥.而在拥有如此基数玩家的<英雄联盟>,已经不仅 ...

  8. 分析5万多场英雄联盟比赛,教你如何轻松用python预测胜负

    CDA数据分析师 出品   作者:真达.Mika 数据:真达   后期:Mika [导读] 今天教大家用Python预测英雄联盟比赛胜负.Show me data,用数据说话!今天我们聊一聊 pyth ...

  9. 【爬虫+数据可视化毕业设计:英雄联盟数据爬取及可视化分析,python爬虫可视化/数据分析/大数据/大数据屏/数据挖掘/数据爬取,程序开发-哔哩哔哩】

    [爬虫+数据可视化毕业设计:英雄联盟数据爬取及可视化分析,python爬虫可视化/数据分析/大数据/大数据屏/数据挖掘/数据爬取,程序开发-哔哩哔哩] https://b23.tv/TIoy6hj

最新文章

  1. 选择最合适的预测性维护传感器
  2. 使用Vue的filters(本地)或filter(全局)过滤常用数据类型
  3. 如何让黑白图片恢复“生机”
  4. Effective Java之使可变性最小(十五)
  5. 【iOS】Quartz2D图片剪切
  6. 哀悼地震遇难者--5月19至21日为全国哀悼日
  7. js 基于函数伪造的方式实现继承
  8. 内网,外网ip(路由器ip,公网ip)的分别以及如何查询
  9. excel组合汇总_Excel汇总20151102
  10. Linux学习系列 --awk命令学习
  11. png图片透明部分点击
  12. SAP B1安装教程
  13. iOS 应用签名原理
  14. 物联16:4 ISO/IEC 14443-3 防冲突、防碰撞算法、Type A、Type B
  15. 一个纸杯子的测试用例
  16. 关于谷歌浏览器默认首页为好123的解决办法
  17. bzoj1613[Usaco2007 Jan]Running贝茜的晨练计划*
  18. python线程和进程-未完待续
  19. Android CoordinatorLayout 实现浮动导航栏效果、常规用法
  20. opencv入门:矩特征,Hu矩

热门文章

  1. yolov5安装pip install requirements.txt,pycocotools安装报错
  2. 《推荐系统笔记(十五)》流行度以及基于流行度的推荐
  3. redis笔记3 持久化、管道、事务、发布订阅和内存回收
  4. boost::asio的C/S结构笔记
  5. 中国夹层玻璃板行业市场供需与战略研究报告
  6. 云存储软件行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  7. C语言作业 – 数组排序算法可视化
  8. 海龟绘图两小时上手C语言 - 1 绘制直线
  9. 第6章 旋转的方块(《Python趣味创意编程》教学视频)
  10. ubuntu创建可执行图标、设置文件默认打开方式