英雄联盟美服10000条排位数据分析

英雄联盟是2009年美国拳头游戏开发一款红蓝双方互相对抗的MOBA游戏,每队有5名队员,通过击杀敌方小兵、推塔、击杀敌方英雄,以最终摧毁敌方主堡作为胜利的游戏。

一、数据来源

本次的数据来源是kaggle。
链接地址:https://www.kaggle.com/bobbyscience/league-of-legends-diamond-ranked-games-10-min
从数据来源者描述中可以得知,本次数据是通过拳头数据API获得的。数据包括钻一到大师分段的SOLO Q排位每场的前10分钟数据。总共有接近10000条比赛数据。这些数据值得分析的原因也在于召唤师段位较高,数据较为稳定。低段位比赛由于玩家水平较低,数据波动会大很多。

这里需要介绍一下英雄联盟的排位中队友和对手的匹配机制:

匹配系统的目的如下,优先级从高到低:
1.保护新手不被有经验的玩家虐;让高手局中没有新手。
2.创造竞技和公平的游戏对局,使玩家的游戏乐趣最大化。
3.无需等待太久就能找到对手进入游戏。
4. 匹配系统尽其所能的匹配水平接近的玩家,玩家的水平是来自他们在此之前赢了谁以及他们对手的水平。

数据包括:
最终比赛结果,一血击杀方,蓝色方击杀数,蓝色方死亡数,蓝色方助攻数,蓝色方控制守卫数量,蓝色方排眼数,蓝色方精英怪击杀数,蓝色方小兵击杀数,蓝色方推塔数,蓝色方龙击杀数,蓝色方获得金币数,蓝色方获得经验,蓝红双方金币差,蓝红双方经验差,以及红色方相对应的一些数据。

二、探索的问题

从上面的数据可以看出英雄联盟中有很多的游戏元素,这些游戏元素都在影响比赛进程,最终决定比赛结果。比如一血的击杀可以给队伍带来更多的金币,影响兵线。比如更多的助攻代表着更加团队的打法。如果一场比赛中击杀很少,那比赛可能会陷入互相发育的无聊阶段,此时小兵的击杀数会和防御塔摧毁数量会影响金币进而影响装备。等等。。。

从这些数据中我要探索的问题是:

  1. 前10分钟的平均数据是什么样的,从平均数据中推测钻一到大师分段前10分钟比赛时会出现的情况。

  2. 随着比赛场次的增加以及玩家对游戏版本理解的深入,游戏数据平均值是否发生波动?这些波动反应了召唤师们对游戏理解的哪些改变?

以及最终的目标:
哪些数据会影响比赛结果,是正向相关还是负向相关?是否能从前10分钟比赛数据预测最终的比赛结果?预测的准确率是多少?

三、数据探索

在进行数据探索之前,首先要考虑这些数据的均值等是否能代表全部数据的真实情况。
举个简单的例子,这10000条数据是否都是在同一游戏版本中进行的。如果发生过版本变动,那么其中一个版本的数据并不能代表另一个版本的真实情况。同样,如果数据不是发生在同一版本中,预测比赛结果也就无从谈起。

在原始数据中包含了每场比赛的唯一id(gameId),观察比赛id可以得知这些id在原始数据中是是乱序,但是id前三位数之间的差距不大。例如连续三行数据的id可能是:

450xxxxxxx
447xxxxxxx
449xxxxxxx

由此可以推测出两种可能性:

  1. 原始表中的数据顺序并不是真实比赛发生的时间顺序,比赛id前三位排序后可能是真实的比赛时间顺序。
  2. 原始表的顺序就是真实比赛发生的时间顺序,游戏id并没有太大的参考意义。

假设以比赛id是真实的时间顺序
从下方蓝色方胜败场数图中可以看出比赛id为42XXXX,43XXXX,44XXXXXX,45XXXX 之间的比赛总数量相差很大,不应该为不同版本之间的差异。
并且10000场比赛对于英雄联盟美服来讲也并不是特别大量的比赛场次。

因此暂推测比赛数据发生在同一游戏版本中,并且原始数据表的顺序即为真是比赛时间发生顺序。

那么要探索的问题:
一、前10分钟的平均数据是什么样的,从平均数据中推测钻一到大师分段前10分钟比赛时会出现的情况。

对这些数据进行汇总:


从上表中可以得知:

  1. 蓝色方胜率49.9%。从游戏地图设置上,红蓝双方相对公平性。同样由于游戏平衡性较好,因此从平均值来看红蓝双方的数据相差不大,因此本表中仅体现蓝色方数据。
  2. 10分钟时单方击杀数为6.2个,助攻数为6.6个,平均每击杀助攻数1.1。说明游戏前期(对线期)击杀主要来自于单杀或小规模团战或2人协作击杀对面单人,而非大规模团战。
  3. 蓝红双方经济差平均为14.4。这里要说明,当蓝色方金币数比红色方高时,该数值为正值;当红色方金币数比蓝色方高时,该数值为负数。该数据平均值代表了游戏对蓝红双方是否公平,14.4平均经济差值在游戏中已足够小,说明游戏总体公平。
    同样,对所有经济差取绝对值后再平均,代表了游戏中10分钟时双方经济差的平均水平。
    计算后得到经济差绝对值平均数:1931.59。说明在10分钟时领先的一方相当于每人领先对面敌方一个小件装备,如果考虑经济大部分集中在双C位,那么相当于双C每人领先对面半件大装备。
  4. 平均控制守卫数是22.2个,破坏对方控制守卫数是2.8个。前期真眼和扫描眼比较少,破坏对方控制守卫数比较少可以理解。
  5. 平均等级为6.9级,考虑到C位经验领先与辅助等位置,因此10分钟时基本是全员刚有大招的时候。由此推测10分钟前在平稳的对线期,10分钟后团长将变多。
  6. 全队小兵击杀数(补刀)平均值数是216个,分均补刀21.6个。这在英雄联盟全部玩家中算是比较高的水平,不愧是钻1到大师的水平。

二、随着服务器中比赛场次的增加以及玩家对游戏版本理解的深入,游戏数据是否发生波动?这些波动反应了召唤师们对游戏理解的哪些改变?

原始数据本身是没有时间属性的。为了探寻比赛数据随比赛发生时间(非比赛内时间)的变化,我这里将全部数据按原始数据顺序分为5份,分别标记为“A、B、C、D、E”5个阶段。对数据进行探索。

再次说明,10000场数据量并不是很大,很可能这些数据仅产生在几天内。短时间的数据波动可能并不能真实代表玩家玩法的变化。以下内容为探索。

  1. 虽然这10000场蓝色方总胜率是49.9%,很接近50%,但将数据分段可以看到大多数时间蓝色方胜率是不足50%的。(虽然差距并不大)▼

  1. 总获得金币,击杀,助攻数,每击杀助攻数折线图中可以看出,ABCD四个阶段蓝红双方的对抗是相对减弱的。尤其从每击杀助攻数可以看出,D阶段发生了更少的团战,单杀的比率增加。总金币减少,游戏前期获得装备的也减慢。但在E阶段,召唤师们又开始热衷于击杀和团战。▼


  1. 推塔情况总体变化不大,每场平均推塔0.1个左右。说明在10分钟时双方基本都不会推掉对方防御塔。防御塔的经济影响可忽略。
    当线上击杀变少,补兵变少的时候。我们的打野在干什么呢?从小兵及野怪击杀图和龙击杀图中可以看出,我们的打野一门心思的在地图上刷野和控龙。也许他们觉得去线上帮助队友拿到优势的策略并不可靠。打野不来帮助线上击杀对面,所以ABCD阶段总击杀和助攻都减小了的数据也就更为合理。▼

  1. 影响比赛结果的经济差
    从红蓝双方的经济差可以发现,经济差的变化趋势与胜率的变化趋势相似。可以推测,双方经济差是影响比赛结果的关键因素之一。这对下一步预测比赛结果也有重要意义。
    从蓝红双方经济差绝对值趋势可以看出,“A、B、C、D、E”5个阶段总体双方经济差是拉大的。也就是说在前10分种内随着对版本理解的深入,占得优势的一方会将优势扩大更多。▼

  1. 暂时不能理解的趋势
    从总经验趋势图中可以看出,BCD三个阶段双方总经验和是保持在高位的。但从上面数据也看到,击杀、助攻、每击杀助攻数、小兵击杀数在这几个阶段都是下降的。那这些经验从何而来呢?是因为野怪击杀数和龙击杀数增多么?我保持怀疑。▼


三、哪些数据会影响比赛结果,是正向相关还是负向相关?是否能从前10分钟比赛数据预测最终的比赛结果?预测的准确率是多少?

我们最想知道的还是是否能从前10分钟数据中预测比赛结果。使用机器学习的方法对数据进行分析。在本文中只接单介绍过程。

  1. 数据清洗及变量转换
    查看数据类型和缺失情况。转换部分数据类型及范围以方便机器学习。
  2. 特征工程
    原始数据中记录了很多双方数据,但对胜负影响大的因素并不是蓝色方击杀了几次,红色方击杀了几次,而应该是双方数据的差值。比如哪一方拿到了一血,击杀数差值,助攻数差值,平均经验差值,平均等级差值,小兵击杀数差值等等。
    在这一阶段通过组合方式获得更多特征。
    例如:蓝色方拿到一血时,蓝色方更容易获胜。蓝色方击杀龙后更容易获胜。(注:1是蓝色方胜或击杀龙或蓝色方拿到一血,0是红色方胜或拿小龙或红色方拿到一血)▼

并通过相关系数矩阵简单探索数据相关性。▼

  1. 输入模型前的一些处理
    包括数据正则化,去掉部分无用特征,分割训练数据和测试数据等等。我这里将20%数据分割为测试数据。

  2. 模型融合
    采用Stacking框架融合。第一层使用RandomForest、AdaBoost、ExtraTrees、DecisionTree、KNN、SVM ,一共6个模型。
    第二层使用XGBoost对数据进行最终预测。采用准确率accuracy_score方法对预测结果进行评分。

最终评分0.729分。后续有继续优化空间,例如根据特征重要性筛选特征,组合部分特征,参数优化等。▼

【数据分析案例】英雄联盟美服10000条排位数据分析相关推荐

  1. lol美服服务器修改密码,如何修改LOL美服密码?英雄联盟美服账号密码和邮箱修改教程...

    如何修改LOL美服密码?英雄联盟美服账号密码和邮箱修改教程 2017-01-10 LOL美服账号密码如何修改?英雄联盟LOL美服账号邮箱如何修改?购买美服账号的玩家,对着两个问题很烦恼.今天,小编做一 ...

  2. 开启xmp1还是2_《英雄联盟手游》排位开启条件一览 怎么解锁排位

    <英雄联盟手游>游戏最近上线国际服了,很多玩家多跑去下载体验,那么在新手期过后,玩家就想要打排位了,段位才是玩家的最终目标哦,那么,游戏中排位怎么开启?很多小伙伴表示在游戏中无法参加排位模 ...

  3. linux运行国服英雄联盟排行榜,LOL国服排位十大高手排名:问谁是S2路人王

    本文为17173英雄联盟专区原创作品,如需转载请注明作者及来源. 随着S2即将结束国服也是掀起了一股冲分热潮,一个多月前国服最高分还仅仅只有2500.而如今这个数字又涨了100分.各路大神也是分秒必争 ...

  4. python游戏辅助lol_Python数据分析实战--英雄联盟游戏数据分析

    3.31更新了下路组合的对线情况 最近疫情原因一直呆在家里,本人也是LOL资深玩家了,从S3就开始接触LOL了,中间S8.S9的时候没有怎么玩,现在又玩回来了,LOL玩多了,突然就想能不能对英雄联盟的 ...

  5. 如何利用数据分析提高英雄联盟的胜率

    本文将利用外服的18w场英雄联盟(LOL)比赛的数据来进行数据分析,看看如何能帮助我们提升胜率. import numpy as np import pandas as pd import matpl ...

  6. 数据分析~案例:中国五大城市PM2.5数据分析

    config.py import os # 指定数据集路径dataset_path='./data' # 结果保存路径output_path='./output' if not os.path.exi ...

  7. 【数据分析案例】美国2015-2018年牛油果销售数据分析

    数据来源: https://www.kaggle.com/neuromusic/avocado-prices 该数据于2018年5月从Hass Avocado Board网站.数据为2015年至201 ...

  8. 云顶之奕账号服务器的缩写,LOL云顶之弈美服账号怎么注册 英雄联盟自走棋美服测试服注册方法...

    LOL云顶之弈美服账号注册方法是玩家们想知道事情,游戏目前还未正式上线国服喔,那么LOL云顶之弈美服账号怎么注册.英雄联盟自走棋美服测试服注册方法呢,跑跑车手游网为大家带来了介绍. *LOL云顶之弈美 ...

  9. jqprintsetup已经安装还会提示_英雄联盟PBE服务器安装指南 抢先体验新模式“云顶之弈”不用等...

    今天凌晨,英雄联盟PBE服务器正式上线了全新的游戏模式--云顶之弈.问题来了,如何下载安装英雄联盟PBE服,畅玩全新版本云顶之弈,体验LOL自走棋呢? 百度搜索LOL PBE,第一个搜索结果就是我们要 ...

最新文章

  1. Mybatis知识(4)
  2. 安装node和pm2
  3. 14岁上大学,29岁拿下教职,如今这位华裔学者拿下Jeffrey Elman大奖
  4. opencv for arm
  5. Linux 服务器性能参数指标总结
  6. 【机器视觉】 global算子
  7. 还是俄罗斯方块之android版
  8. html让a标签左右一样宽,button和a标签设置相同的css样式,但是宽度不同
  9. win7 dos窗口输入命令必须加后缀问题,例如 java必须输java.exe
  10. 如何找出光纤微米级别的脏污?女朋友的一个举动给了我灵感
  11. vue router.beforeEach跳转路由验证用户登录状态
  12. linux-阿里云仓库搭建-搭建本地仓库-yum
  13. 威联通NAS配置阿里云域名和SSL证书
  14. Google员工的工作环境
  15. 依图科技从科创板“退赛”:三年半累计亏损72亿,研发费用高企
  16. 苹果弃用 3D Touch!
  17. ArcGlobe三维开发之十八——纵断面图的绘制
  18. 小白入职公司都是自己看,嫌弃增删改查,做了2年感觉没前途?
  19. rem等于多少px?
  20. ChatGPT 用户破亿背后...

热门文章

  1. 电子计算机制作探测,金属探测器DIY,你真正了解过多少?
  2. 低风险整体式微服务演进第三部分
  3. 关于eclips的一些使用
  4. 结构化 VS 非结构化
  5. GaussDB表设计最佳实践
  6. 【单片机原理及应用日志】用取模软件提取汉字字模,在LCD屏上显示界面
  7. 英雄联盟晋级赛时服务器维修,英雄联盟段位机制改动曝光,晋级赛被坑或将成为历史...
  8. java修改线程池名称_自定义线程池的名称(ThreadPoolExecutor)
  9. Sampling Heuristics for Optimal Motion Planning in High Dimensions论文总结
  10. 利用curl进行ftp的下载和上传