使用Python,我找到了可以帮助您赢得梦寐以求的吃鸡的最佳武器组合。
> Photo by SCREEN POST on Unsplash
不久前,出于好奇,我下载了PUBG Mobile,以了解炒作的全部内容。为了大致了解游戏的运作方式:您从飞机上跳伞,然后撞上建筑物并开始寻找防护装备,弹药和武器,然后要么*死他人,要么被他人*死,最后一支生存下来的队伍赢得鸡肉晚餐。这个概念听起来很简单,是吗?然后,您撞上一栋建筑物,发现自己盯着五把不同的枪,枪口上的名字不知道它们之间的区别。每个玩家都可以装备两把枪,但是我应该怎么知道该选哪两把呢?我可能没有选择合适的对手,因为即使我多次开始射击,我也一直被对手*死。因此,我决定,为什么不趁此机会提高我的Python技能(您知道当您实际上必须使用Google的"快捷键才能在Python上运行代码"时,您真的很生锈),并希望找到可以使我更好的东西。有机会带回家那顿鸡肉晚餐?请迅速做出决定:自从我上一次使用Python开发项目以来已经过去了两年,所以绝对欢迎提出有关如何以更好的方式编写代码的建议!和往常一样,我的代码托管在GitHub上。
Web抓取数据集我到处搜索关于PUBG武器统计数据的现成数据集,但最终没有找到(Kaggle有一个从官方API派生的关于玩家统计数据的数据集,该数据集可作为其他分析的有趣数据集)。 但是,我确实找到了提供武器统计信息的网站,因此我继续使用BeautifulSoup对官方的PUBG Wiki进行了一些网页抓取。 我将不涉及网络抓取过程的详细信息,因为我想将重点更多地放在数据分析部分上,因此我仅重点介绍一些部分。
尽管有一个页面提供所有武器的统计信息,但我希望能够将它们归类为各自的类型(例如,无论是突击步枪还是轻机枪),因此我最终从每个页面的相应页面抓取 将8个数据框合并为一个数据框之前的武器类型。
> Data cleaning: what are the numbers in BDMG and HDMG columns supposed to mean in this case?
我还通过将其他网站的数据替换为丢失和怪异的数据(请参阅本文结尾处的数据)来清理丢失的数据,这些数据列出了在当前数据集中不需要替换的其他武器的可比较值。
> It doesn't seem like I can perform any arithmetic operations on the values in the PWR, SPD and TBS
之后,在将数据帧导出为csv文件之前,我将所有数字列都转换为float数据类型,以允许在后续数据分析中进行算术运算。
武器功能以下总结了每个功能的含义(只需最少的更改即可从PUBG Wiki复制和粘贴信息)
· DMG(命中伤害)
在装甲和其他减灾因素之前施加直接伤害
· SPD(初始子弹速度)
子弹离开枪口的速度,以每秒米为单位。 较高的数字意味着对遥远的移动目标所需的铅减少。
· PWR(身体碰撞冲击力)
射击布娃娃时会施加多大的力。 更高的价值意味着更大的推动力。
· MAG(每个Mag的弹药)
弹匣中可以容纳的最大弹药量。
· TBS(射击间隔)
重新发射武器之前必须经过的最短时间(以秒为单位)。
· 模式(射击模式)
该武器可以选择的模式。 在此字段中具有"单发","自动"的武器表示可以在单发射击模式或自动射击模式之间进行选择。
· BSHT(连拍)
如果适用,一次连发射击几张。
· BDEL(连拍延迟)
再次触发另一个突发之前必须经过的最短时间(以秒为单位)。
· AMM(弹药类型)
武器接受的弹药类型。
· CAP(容量)
也称为散装或占用的库存空间量。
· 附件(附件)
武器本身可以附带什么。 附件的示例包括一个范围,可以进行远距离狙击。
· BDMG 0,BDMG 1,BDMG 2,BDMG 3(身体伤害等级0,身体伤害等级1,身体伤害等级2,身体伤害等级3)
在以下情况下对身体造成的伤害:分别没有装备盔甲,没有装备1级背心,装备2级背心和3级背心。
· HDMG 0,HDMG 1,HDMG 2,HDMG 3(头部伤害等级0,头部伤害等级1,头部伤害等级2,头部伤害等级3)
在以下情况下对头部造成的伤害:未装备护甲,装备了1级护甲,装备了2级护甲和装备了3级护甲。
· 类型
我创建的一个变量,用于反映其所属的武器类型。
根据描述,似乎更重要的武器特征是:身体和头部的伤害(如果武器造成更大的伤害,则更有可能*死对手),初始子弹速度(更快的子弹速度意味着 您的子弹可能会在对手击中您之前击中对手),两次射击之间的时间(通常需要多次射击才能*死对手,因此两次射击之间的时间越短,您击败对手的机会就越大),每磁石弹药(如果您 可以为每个弹匣携带更多子弹,而您不必浪费那么多时间重新装弹)。
探索性数据分析现在已经消除了所有棘手的细节,是时候玩得开心了。 让我们尝试通过绘制相关矩阵来找到不同功能之间的一些趋势。
> Having many variables means we'll have a pretty scary looking correlation matrix
快速浏览一下相关矩阵,可以发现不同级别的身体伤害之间的关联性非常好,不同级别的头部伤害也是如此。 因此,我们可以选择其中一个级别,让我们只使用BDMG 1和HDMG1。身体伤害和头部伤害也高度相关,这绝对不足为奇,但是现在,我们将继续 为了安全起见,我们相关矩阵中的两个变量都是安全的。 令人惊讶的是,伤害与身体和头部伤害之间的相关性较低。 由于身体和头部的伤害是直接影响玩家健康的因素,因此我们只从相关矩阵中删除伤害。
> "Decluttered" correlation matrix that would hopefully help us to find some trends
观察"杂乱无章"的相关矩阵,似乎在伤害与射击之间的时间(较高的伤害枪在射击之间的时间较长),伤害和速度(较高的伤害枪的子弹速度较慢)之间进行权衡。 每个弹药的弹药(更高伤害的枪支,每个弹匣可以携带更少的弹药)。 在这三个折衷方案中,前两个折衷方案对于赢得一场战斗更为关键,因此我们将重点放在它们上。 另外,鉴于身体伤害和头部伤害之间存在高度相关性,因此,我将仅从此刻开始着眼于头部伤害,以进一步简化事情。 简而言之,我们将研究3个变量:头部伤害等级1(HDMG 1),初始子弹速度(SPD)和射击间隔时间(TBS)。
首先,按武器类型绘制热图。 在显示实际热图之前,我将快速总结不同武器类型的缩写。
· 突击:突击步枪
· 弓:bo
· DMR:指定的神射手步枪
· LMG:轻机枪
· SG:Shot弹枪
· SMG:冲锋枪
· SR:狙击步枪
> Heatmap depicting how each weapon type fared across the 3 crucial variables (sadly the colours are
这进一步重申了我们早先发现的趋势-更高伤害的枪支往往具有较慢的子弹速度,并且两次发射之间的时间更长(我们仅以shot弹枪为例)。 正如本文开头所提到的,每个玩家都可以装备2支枪,因此,我想根据这2种折衷情况,找出哪种搭配最有利。
> Heatmap showing how the different combinations of weapon types fared across the 3 crucial variable
我首先绘制了一个热图,以比较不同的武器组合。 这似乎描绘了一幅相似的图,其中在伤害与速度之间以及在伤害与射击之间的时间之间进行权衡,但这并不是很清楚,因此相关矩阵也许可以更好地描述事物。
> Correlation matrix for weapon combinations
如我们所见,最大的折衷是在伤害和射击之间的时间之间,然后是伤害和速度。
帕累托效率当涉及权衡时,最好的组合是帕累托高效的组合。 帕累托高效到底是什么? 简而言之,如果您有两个目标,那么帕累托有效组合就是这样一种组合,您无法在一个目标上取得进步而又不使另一个目标恶化。 假设您有两个目标X和Y,这两个目标之间需要权衡。
> Illustrating Pareto efficiency
点A的效率不高,因为存在一个点(例如A'),您在至少一个目标中的表现要好于其他目标。 点A'和A'都是帕累托有效的,因为不可能在不使另一个目标恶化的情况下为一个目标获得更高的价值。 例如,从点A'到点A',我们得到一个更高的X但一个更低的Y。一个Pareto前沿仅连接所有Pareto有效点。
在我们的案例中,我们要权衡两个因素,因此让我们分别来看一下。 我们将从伤害与射击间隔之间的更大权衡开始。
> Finding the Pareto efficient combinations for the tradeoff between damage and time between shots
如上所示,帕累托有效组合为:
· 和冲锋枪
· 和轻机枪
· 和指定的神射手步枪
· 弹枪和冲锋枪
· 和Shot弹枪
我们不能说这些组合中的一种优于另一种,但是如果我想要一种组合在伤害和两次射击之间的时间上表现均等,那么选择2或3组合可能是个好主意。
损害与速度之间的权衡又如何呢?
> Finding the Pareto efficient combinations for the tradeoff between damage and speed (PS. If anyone
在这种情况下,帕累托有效组合为:
· 突击步枪和轻机枪
· 突击步枪和狙击步枪
· 轻机枪和狙击步枪
· 指定的神射手步枪和狙击步枪
· 突击步枪和Shot弹枪
· 轻机枪和Shot弹枪
· 弹枪和狙击步枪
· 和Shot弹枪
再说一次,我们不能断定这些组合中的一种优于另一种,但是如果我想要一个组合在伤害和速度上都表现得相当不错的组合,那么最好选择5或6的组合。
归根结底,这实际上取决于您是要优先考虑伤害与射击间隔时间之间的权衡,还是损害与初始子弹速度之间的权衡。 然后,帕累托效率分析将提供一些武器组合,您可以选择,这取决于您是喜欢一种目标比另一目标好得多的组合,还是两种目标都相当平等的组合。 我会选择后者,因为进行此分析的目的是要找到一对具有不同优势的枪支,彼此互补。
话虽如此,我希望这种分析能帮助您赢得那顿鸡肉大餐!
数据集的功劳
· https://pubg.gamepedia.com
· https://www.futuregamereleases.com/2019/01/pubg-weapon-damage-charts-body-vs-headshot-limb-utility/
· https://pubgmap.io/weapons.html
提供网络抓取参考代码的信用
· Hackwagon学院
归功于帕累托边境代码
· https://pythonhealthcare.org/tag/pareto-front/
(本文翻译自Meredith Wan的文章《Which PUBG Weapon Combination Should You Pick?》,参考:https://towardsdatascience.com/which-pubg-weapon-combination-should-you-pick-f58bdc262082)
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved