未定事件薄吧 关注:51,380贴子:3,203,625

历时三个月,终于建立起一个靠谱的四星抽取经验模型

取消只看楼主收藏回复


在上次研究完五星抽卡模型后,原以为很快就可以依照类似的方法得出四星的抽卡模型,事实证明我错了。
四星模型的建立比五星模型的难得多,在不断更新使用的数据集和数学工具后,总算是整理出了一个可用的经验模型。


IP属地:云南1楼2021-02-19 12:39回复

    B站原文:https://www.bilibili.com/read/cv9896487
    NGA贴子:https://bbs.nga.cn/read.php?tid=25600848
    GitHub项目:https://github.com/OneBST/GI_gacha_dataset
    放一张我拍的龙脊雪山,欢迎各位去以上几个地方支持一下


    IP属地:云南2楼2021-02-19 12:50
    收起回复
      数据获取
      海量数据的获取是寻找抽卡规律的基础。之前的分析数据来源无非是看自己的抽卡记录,看主播抽卡视频,或者统计弹幕中出货抽数,对于分析四星机制这样精细的建模准确性堪忧。
      得益于抓包导出抽卡记录的工具,在三个月里我收集到了量大且准确的数据供这次分析使用。
      第一批募集到的数据中有54722条抽卡记录,因收集时未声明会公开数据,故没有公开。
      第二批募集到的数据中目前有77500条抽卡记录,抽卡记录文件及简易分析工具在GitHub的GI_gacha_dataset项目上,数据会持续更新。


      IP属地:云南4楼2021-02-19 12:52
      回复
        抽卡数据特征提取
        想要分析好数据,先要仔细观察,很多细节都隐藏在海量数据之下
        借助工具寻找数据中的特征点,得到了以下特征


        IP属地:云南5楼2021-02-19 12:54
        回复
          四星概率上升位置
          观察数据,抽到四星的概率于距离上次抽到四星后8次都没有抽到四星后开始上升,也即是第9次处开始上升
          下图为数据集中抽到四星的分布图


          IP属地:云南6楼2021-02-19 12:56
          回复
            五星不会重置四星的保底
            观察数据,当已经连续九次没有抽到四星,且接下来一次抽到五星时,再接下来一抽一定不会抽到三星,相当于五星物品将四星物品从第十发挤到了第十一发,发生这种情况的四星约占所有四星的0.5%。对比中途抽到五星和中途没有抽到五星的情况,抽到四星所需抽数的分布大体不变,中途抽到了五星并不会使得抽到四星所需抽数显著增长。
            据此推测,有可能出现连续九抽没有抽到四星后连续抽到两个五星,再抽一次抽到四星,这样距离上个四星后又抽了十二次才抽到四星,但这概率太低了,我也没有观察到这样情况。


            IP属地:云南7楼2021-02-19 12:57
            收起回复
              十连和单抽对四星抽取可以认为没有区别
              观察数据,十连并不会像很多玩家认为的那样,在计算时发现前9次没有四星在第10次抽取时强行塞一个四星进去,形成十连必有一个四星的情况。事实上,两次四星之间间隔不超过十次是十连必有一个四星的充分条件,不需要制定一个检测十连是否有至少一个四星,否则塞一个四星进去的规则。数据中十连和单抽除了拉取数据中十连具有相同抽卡时间记录外,都是有序的,十连与单抽几乎没有区别。如果十连并不会带来强制加入的四星物品,那么就会出现十连有五星,没有四星的情况:五星碰巧把四星挤到第十一次去了。
              吧友@七夜奕提供了一张有五星没有四星的截图


              IP属地:云南8楼2021-02-19 13:00
              回复
                四星和五星之间概率分配特征
                四星和五星没有耦合时,为举例设前8次没有抽到四星,第9次抽到四星的概率为1/2,前78次没有抽到五星时,第79次抽到五星的概率为1/3。那么当这两种情况耦合到一起时,四星和五星之间的概率是怎样分配的?
                第一种设想是这一抽有1/3的概率抽到五星,剩下2/3部分中有1/2概率抽到四星。总的来说1/3概率是五星,1/3概率是四星,1/3概率是三星。
                第二种设想是五星和四星各占据自己的比例,两者概率之和大于1时五星更优先。这样的话五星占1/3概率,四星占1/2概率,三星占(1-1/3-1/2)=1/6概率。
                在数据中发现,类似情况中三星物品出现的频率非常低,比例接近于第二种设想。


                IP属地:云南9楼2021-02-19 13:01
                回复
                  模型建立
                  最开始我忽视了四星和五星的耦合问题,简单的将分析五星的方法应用于四星,调整第9次出四星的条件概率使得综合概率匹配13%,按照米哈游官网文字描述在四星中按概率划分UP四星角色、非UP四星角色、四星武器。
                  但是收集到的数据中四星的分布明显和我预计的不同,每次抽到四星时,位于上一个四星后的第9次抽卡的比例明显高于预期。角色祈愿中UP四星角色约占四星的68%,四星武器约占28%,其他四星角色约占4%,其他四星角色的比例明显低于预计。
                  以下为截止2021-02-19时公开数据集数据


                  IP属地:云南10楼2021-02-19 13:04
                  回复
                    思考了很久后我发现我忽视了四星与五星的耦合问题,抽卡系统设计者有充足的时间进行工作,肯定考虑的很到位。在目前的假设下,每次抽卡仅与前有限次抽卡相关联,满足高阶马尔科夫性质,我便定义了一个很大的概率转移矩阵来进行综合概率和分布的计算。
                    令人沮丧的是,考虑了四星与五星的耦合后的模型仍和实测值仍有很大的差距。

                    第9/10抽获得的数据是最多的,噪声带来的影响理应最少,却和理论值差异很大,这让我思考了很久
                    为什么呢?这究竟是为什么呢?明明我是按照13%来建模的啊!


                    IP属地:云南11楼2021-02-19 13:05
                    收起回复
                      随着收集到的抽卡记录越来越多,四星的抽取记录已经来到了上万条,发现无论采用怎样的纠偏方式去除系统偏差,四星的综合概率的无偏估计量始终高于13%。
                      我产生了一个大胆的想法:四星实际的综合概率难道比官方公布的13.00%更高?借助贫瘠的统计学知识,我尝试用大数定理和假设检验对数据进行分析,发现实际概率高于13.00%的可能性确实不低。虽然有人指出我的验证方法在数学上并不严格,但这足以为我壮胆去尝试一下建立不符合官方公布信息的模型。


                      IP属地:云南12楼2021-02-19 13:08
                      回复
                        通过概率转移矩阵计算分布,不断调整第9次出四星的条件概率使得四星位于第9抽的比例匹配获得数据中比例。以此方法建立了如下经验模型。
                        四星的概率P_4满足下表

                        每次抽卡,抽到五星的概率为P_5,抽到四星的概率为P_4,抽到三星的概率为1-P_5-P_4。当P_4+P_5>1时,抽到五星的概率为P_5,抽到四星的概率为1-P_5,抽到三星的概率为0。
                        *抽到五星的概率P_5之前文章提到的模型
                        对于角色活动祈愿,若上次抽到的四星不是活动祈愿UP四星角色,则这次一定是活动祈愿UP四星角色。
                        若上次抽到的四星是活动祈愿UP的四星角色,则这次有50%概率直接抽到活动UP四星角色。若没有直接抽到活动UP四星角色,抽到四星按照下表的经验值进行分配。

                        按照经验值进行分配后,若抽到角色,祈愿中包含的所有四星角色平分概率(包含UP角色)。若抽到武器,祈愿中包含的所有四星武器平分概率。


                        IP属地:云南14楼2021-02-19 13:09
                        回复
                          模型评估
                          使用模型进行大量模拟,对比实际数据

                          模型对四星分布的估计值几乎与实测值相同(废话,经验模型)

                          采用的未公开数据集与公开数据集的共8775个四星的信息

                          本文中的经验模型大数模拟值


                          IP属地:云南15楼2021-02-19 13:11
                          回复
                            结论
                            本文中建立的经验模型能较好贴合实际数据。由于是经验模型,必然不能做到和实际的抽卡数值完美符合,但目前的精度已足以用于指导四星抽卡。


                            IP属地:云南16楼2021-02-19 13:13
                            收起回复
                              闲聊
                              四星抽卡模型的建立过程非常的痛苦,本想完全依据官方给出的信息进行建模,奈何并不能匹配实际数据,只能选择建立并不优雅的经验模型去凑。当然如果有人能够提出满足实际数据特征且满足官方公示信息的模型那是最好。
                              官方公示的信息和实际数据有诸多不符合之处,实际概率很可能高于公示概率,角色祈愿池中的非UP角色比例也和公示文字对不上。这些都耗费了我很多时间去逐一建模验证可能性,在一次又一次建模再推翻的过程中,我在怀疑自己数学不好和怀疑原神负责这块的数值数学不好这两种状态间来回切换。最后想了想,数值有完整的抽卡代码,就算是用蒙特卡洛模拟也可以设计出符合要求的系统。或许是数值上班摸鱼,可能有着类似:“反正四星概率偏高一点点玩家也不会有意见”,与公示的信息不符也可以用“一般情况下所有角色或武器均适用基础概率,如触发概率UP、保底等以具体规则为准”搪塞过去,或是数值团队人和人之间的沟通并不好才导致了这样的情况。当然,这只是我发的一点牢骚,实际是怎样的呢?谁知道。
                              四星里五星占比偏高,或许也是担心只抽角色池的玩家没有武器可以用。


                              IP属地:云南17楼2021-02-19 13:14
                              回复