世萌吧 关注:899,604贴子:7,605,909

【模型】关于elo模型和vf模型的预测科学性分析

只看楼主收藏回复

文章较长,后面没有代码,需要代码进行分析的请私聊。
未见结尾请勿插楼。


IP属地:上海1楼2018-07-03 22:27回复
    这个贴子的思路是,先建立一个世萌投票的数学模型,通过这个模型来分析两种算法的预测结果,再根据结果与实际值的误差来分析其科学性。


    IP属地:上海2楼2018-07-03 22:28
    回复
      2.介绍模型
      我假设了六个选手,通过描述对其内外因素进行赋分(请勿对号入座),绘制她们的喜好参数(图像的横轴是喜好参数,纵轴为各喜好参数对应的人数),通过喜好参数的分布可以看出选手的战力水平,具体如下:
      A:热度极高或得到补魔的一流番剧主角,人设出色,拥有超出acg圈的影响力,同时拥有完善的应援团,某应援团阵营扛把子,同时阵营里拥有各式各样奇妙的科学武器。
      内因分数:1.0 外因分数:1.0 喜好参数平均值:0.6673

      B:热度极高或得到补魔的一流番剧主要角色,人设比较出色。在acg圈具有较大影响力,拥有应援团且一票路人死忠。
      内因分数:0.9 外因分数:0.6 喜好参数平均值:0.6024

      C:热度较高的番剧的主角或者重要角色,人设比较出色,acg主要论坛或者漫展时常出现她们的身影;拥有高实力的应援团,和其他人气较高的角色有联盟关系。
      内因分数:0.7 外因分数:0.7 喜好参数平均值:0.5833


      IP属地:上海4楼2018-07-03 22:30
      回复
        D:热度极高或得到补魔的一流番剧主要角色,人设比较出色。但没有合适的应援组织,多以散票为主,有逐渐过气的趋势。
        内因分数:0.9 外因分数:0.4 喜好参数平均值:0.5704

        E:热度较一般的正播番剧主角或者已经过气的昔日霸主,人设比较出色,应援团比较零散,只有少量死忠为之拼搏。
        内因分数:0.6 外因分数:0.4 喜好参数平均值:0.5036

        F:一般角色,一般人设,在世萌里面活不过二轮,季后赛无望。
        内因分数:0.4 外因分数:0.3 喜好参数平均值:0.4106


        IP属地:上海5楼2018-07-03 22:30
        回复
          3. 介绍battle机制
          battle函数的机制是,若A与B进行battle,将其对应的一万位投票者的喜好参数进行对比,每个投票者会将A和B喜好参数高的一方最为投票对象,若两者的喜好参数均低于0.3,视为此投票者对这场battle没有兴趣,投出弃权的票。
          举几个例子:
          在上述模型中,使用battle函数,可以得出以下结果
          A vs B 结果:5629:4213
          A vs D 结果:5925:3923
          A vs F 结果:7168:2429
          可以看到,比较符合战力的对比,而且比较符合“根据喜好投票,存在弃票”的现实情况。


          IP属地:上海6楼2018-07-03 22:31
          回复
            5.计算最精确的z值,并计算当z取得最佳值的时候elo算法的估算结果误差
            计算elo战力,使用反复迭代算法。单循环让6位选手battle一次,之后采用elo公式迭代50次,此时各个选手的elo数值趋于稳定,然后再用这个预测数值和battle数值进行对比,计算出误差。
            下图横轴为z的取值,纵轴为误差,以及细节图:


            可知,当z=0.63时,误差最小,下面为验证,可以看到0.63的取值比较好。


            IP属地:上海10楼2018-07-03 22:36
            回复
              6.对比将elo算法和vf算法的预测结果
              各取10组随机数,公式和上面一样,下面是预测结果的误差:
              elo误差值:
              0.06066 0.06308 0.05870 0.05542 0.05082
              0.05324 0.05907 0.05581 0.05810 0.05631
              vf算法误差值:
              0.1452 0.1479 0.1492 0.1447 0.1448 0.1457 0.1463 0.1491 0.1445 0.1480
              可以看到,elo算法比vf算法,在预测结果上有比较明显的优势。
              注:vf的预测算法:每个选手进行单循环,票数进行开方求和计算,将每个选手的vf值作为战力进行票数估计。


              IP属地:上海11楼2018-07-03 22:37
              回复
                7.一些问题的Q&A
                Q:elo算法和常见的vf算法在统计战力方面有何差异?
                A:两种算法都可以通过数值大小分析出选手的实力,不过elo算法更强调各个选手之间的关系,适合预测比赛结果;而vf算法更强调选手自身战力所对应的票力,更“自闭”
                Q:如果在实际运用中,elo算法的预测结果出现了较大偏差,应该如何解释?
                A:elo算法表现的是,在计算完毕这个时间点的选手战力,预测值表现了下一刻选手应当具备的战力,而不是下一时刻选手实际拥有的战力。因此,如果战力出现了较大的偏差,我们应该做的是调查为何出现了偏差,而不是怀疑elo算法的正确性。
                Q:如果某次对决的票数特别出乎意料,而两位选手的整体趋势变动不大,会体现在选手的elo积分中吗?
                A:短时间内会波动很大,但除非这位选手可以保持这个战力很长时间,否则elo积分将慢慢还原为之前的样子。


                IP属地:上海12楼2018-07-03 22:38
                回复
                  END


                  IP属地:上海13楼2018-07-03 22:38
                  回复
                    暖贴暖贴……


                    IP属地:陕西来自Android客户端14楼2018-07-03 23:13
                    回复
                      前排膜熙


                      16楼2018-07-03 23:23
                      回复


                        IP属地:河南来自Android客户端17楼2018-07-03 23:50
                        回复
                          不太懂 反正膜拜团子就够了


                          IP属地:江苏来自Android客户端18楼2018-07-03 23:54
                          回复
                            有一个问题:计算後,我发现z=1比起z=0.63更能准确预测实际世萌角色的得票率


                            IP属地:英国19楼2018-07-04 00:08
                            收起回复