Python解析英雄联盟数据,教你带妹上分啦!
前言
如今,只要随便进入一个网吧,都会发现玩《英雄联盟》的人是最多的,可以这么说,《英雄联盟》已经是当之无愧的端游一哥。而在拥有如此基数玩家的《英雄联盟》,已经不仅仅是一个电竞游戏这么简单了,它还带给了我们无数的欢乐。
学习Python中有不明白推荐加入交流群
号:735934841
群里有志同道合的小伙伴,互帮互助,
群里有免费的视频学习教程和PDF!
问君能有几多愁,辅助闪现抢人头;问君能有几多愁,卡牌千里送人头。问君能有几多愁,皇子开大关队友;清明时节雨纷纷,各种队友各种坑。别人笑我不买眼,我笑别人浪费钱;孤帆远影碧空尽,草丛惊现蛮易信 。相见时难别亦难,碰见赵信菊花残;我自横刀向天笑,剁人只需用三刀。苦练盲僧千百次, 盲目对战 N 多次;战输不下五十次, 砸得鼠标要出事;举杯邀明月,草丛遇盖伦。
前几天写了一篇关于吃鸡游戏的分析用 Python 分析了 1w 场吃鸡数据,原来吃鸡要这么玩!帮助小胖提升了吃鸡率。鉴于“二百斤灵魂”小胖舍友不仅痴迷于吃鸡类游戏,还非常喜欢 LOL,所以为了帮助他每天尽快拿到首胜,爬取并分析了 1982 余场 LOL 数据。非常神奇的是,在开局之前能够高概率的预测本局的胜负!让你提前做好心理准备。
假设
- 假设没有王者等大神代玩小号
- 假设没有代练
- 假设没有因为半途被媳妇抓到而挂机的行为
游戏对战数据获取
国服:腾讯游戏平台非官方 API —— http://www.games-cube.com/
外服:Riot 开发者平台 API —— https://developer.riotgames.com/
连接数据库:
import numpy as np import pymysql, random, json def connect_db(database):try:conn = pymysql.connect(host='localhost', port=3306, user='root', password='zandaoguang', db=database, charset='utf8')return connexcept:print ('Exception: MySQL Connection')return None
分析和训练数据
利用神经网络(neural_network)、随机森林(random_forest)和支持向量机(support_vector)等若干智能算法进行训练和回归,最终进行比较效果。
下面为神经网络部分代码:
from __future__ import print_function import numpy as np #np.random.seed(1337) # for reproducibility from keras.datasets import mnist from keras.models import Sequential, load_model from keras.layers import Dense, Dropout, Activation, Flatten from keras.layers import Convolution2D, MaxPooling2D from keras.utils import np_utils from keras import backend as K from keras.optimizers import SGD, Adam, RMSprop import gzip import sys from six.moves import cPickle from fetcher import * batch_size = 256 nb_classes = 2 nb_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 RandomForestClassifier from sklearn.externals import joblib from 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 joblib from sklearn import svm from 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 也是游戏胜利的必要因素。
- 打游戏的心态也是游戏胜利一个不可或缺的条件。
写在最后
虽然我们通过机器学习算法可以预测这把的输赢,但是这毕竟不是我们最后的结果。玩英雄联盟和爱情类似,明明知道是我们不可能,却坚持去追求,这正是爱的美丽。也许没有什么结果,可那过程本身的美丽便足够用一生去品味。
我有一个兄弟,沉迷这个游戏耗费了数年光阴,至今二十好几还流连网吧不返,家人反目。当然游戏本身是没有错的,我也不是责怪游戏,它本质不过是娱乐,从古至今皆有之,只是形式一直在变化,越来越吸引人。明知道每按一次键盘便使自己堕落到更深的深渊,但却无法阻止双手伴随激动的情绪抽动,可悲的人。
极度沉迷游戏的人啊,把你有限的生命留在无限的游戏里吧,那你的灵魂到离开那一刻都是充满成就的。即使后来新闻报道中会出现一个猝死在网吧被人当成笑话嘲笑的懦夫!
Python解析英雄联盟数据,教你带妹上分啦!相关推荐
- python 比赛成绩预测_利用 Python 预测英雄联盟胜负,分析了 5 万多场比赛才得出的数据!值得,涨知识了!...
Mika 来源 | 头图 |CSDN自东方IC今天教大家用Python预测英雄联盟比赛胜负. Show me data,用数据说话 今天我们聊一聊 Python预测LOL胜负 目前,英雄联盟S10全球 ...
- python 预测足球_利用 Python 预测英雄联盟胜负,分析了 5 万多场比赛才得出的数据!...
今天教大家用Python预测英雄联盟比赛胜负. Show me data,用数据说话 今天我们聊一聊 Python预测LOL胜负 目前,英雄联盟S10全球总决赛正在火热进行中,最终决赛于10月31日在 ...
- 利用 Python 预测英雄联盟胜负,分析了 5 万多场比赛才得出的数据!
作者 | 真达.Mika 来源 | CDA数据分析师(ID:cdacdacda) 头图 | CSDN 下载自东方IC 今天教大家用Python预测英雄联盟比赛胜负. Show me data,用数据 ...
- 【爬虫+数据可视化毕业设计:英雄联盟数据爬取及可视化分析,python爬虫可视化/数据分析/大数据/大数据屏/数据挖掘/数据爬取,程序开发-哔哩哔哩】
[爬虫+数据可视化毕业设计:英雄联盟数据爬取及可视化分析,python爬虫可视化/数据分析/大数据/大数据屏/数据挖掘/数据爬取,程序开发-哔哩哔哩] https://b23.tv/TIoy6hj
- 电竞英雄联盟数据API接口 - 【比赛列表】API调用示例代码
电竞英雄联盟数据API接口 - [比赛列表]API调用示例代码 分享使用 野子科技数据 https://www.xxe.io/ 接口调用的示例代码,今天接的是英雄联盟的[比赛列表]接口,跟之前不同的是 ...
- 基于LightGBM分类实现英雄联盟数据预测(一)
基于LightGBM分类实现英雄联盟数据预测(一) 文章目录 基于LightGBM分类实现英雄联盟数据预测(一) 一.LightGBM的介绍 二.操作步骤 Step1:库函数导入 Step2 .读入数 ...
- 基于LightGBM分类实现英雄联盟数据预测(二)
基于LightGBM分类实现英雄联盟数据预测(二) 这里写目录标题 基于LightGBM分类实现英雄联盟数据预测(二) Step5:利用 LightGBM 进行训练与预测 plt.figure(fig ...
- 定制电竞比分网LOL英雄联盟数据API接口调用代码
定制电竞比分网LOL英雄联盟数据API接口调用代码 GET /api/result/lol 说明 该接口为LOL英雄联盟API接口,主要用来拉取比赛结果数据 当每一局比赛结束时,破晓字节电竞数据API ...
- python下载英雄联盟皮肤
这里写自定义目录标题 python--下载英雄联盟皮肤图片 程序源代码 python–下载英雄联盟皮肤图片 一个简单的代码,就可以把英雄联盟英雄全部的皮肤爬取下载以及保存到mongodb数据库中 因为 ...
最新文章
- 计算机视觉顶会CVPR2020接收论文列表已公布,1470篇上榜, 你的paper中了吗?
- 刺激(codevs 1958)
- 力扣 136. 只出现一次的数字 【异或运算】
- 538. Convert BST to Greater Tree 把二叉搜索树转换为累加树
- Apache Httpd常用命令
- electron-vue解决打包错误、无法调用出开发者工具(亲测有效)
- iphone 通过获取IMSI判断运营商
- 【分享】华为总裁任正非谈企业管理:正确的方向来自于妥协
- 命令杀mysql进程
- numpy在对数组进行“行过滤“的时候,使用集合运算函数比使用逻辑运算函数更简单
- 为语音社交平台加一个防护罩,即构上线实时语音安全方案
- access中本年度的四月一日_吉林十二中古时孔夫子栽银杏设坛讲学 今日十二中植银杏校园生辉...
- c语言程序烧写步骤,单片机烧写程序步骤
- ZYNQ-7 PS的中断
- css中图片不清晰解决方法
- 海量数据时代,磁带存储的“涅槃重生”
- “茶界茅台”竹叶青的数字化营销玩法 | 案例
- eclipse默认指向WebContent目录修改为webRoot 设置说明
- 二叉树、二叉查找树与红黑树的原理及Java实现
- HDU 1051 Wooden Sticks 造木棍【贪心】