使用时间序列数据预测《Apex英雄》的玩家活跃数据-

在处理单变量时间序列数据时,我们预测的一个最主要的方面是所有之前的数据都对未来的值有一定的影响。这使

在处理单变量时间序列数据时,我们预测的一个很重要的方面是,所有以前的数据对未来的值都有一定的影响。这使得传统的机器学习方法(如训练/数据分割和交叉验证)变得棘手。

本文使用《Apex英雄》年分析的玩家活动时间模式,预测其增长或下降。我们的数据来自https://steamdb.info,是一个CSV文件。

为了评估模型的性能,我们将使用均方根误差(RMSE)和平均绝对误差(MAE)作为指标来评估我们的回归模型。RMSE会给我们一个数据差的标准差,也就是数据点和最佳拟合线之间的距离。MAE测量是指观察值和真实值之间的差异,这将有助于确定模型的准确性。

EDA

拿到数据后,第一个操作肯定是EDA。在处理时间序列数据时,数据探索性分析的主要目的是发现以下特征:

季节性趋势季节性趋势平稳除此之外,我们还可以计算各种平均值:

简单移动平均线指数移动平均线自2019年2月《Apex英雄》首次发布以来的统计汇总。玩家数量显示,Apex英雄平均玩家数量约为17.9万人。

这是一条简单的均线趋势线。

这是指数移动平均线。

简单移动平均线显示6月份玩家活动略有下降趋势。趋势的斜率为11,考虑到玩家在100k到300k之间波动,这在统计上并不显著。所以可以说6月玩家的活动相当稳定。

这是按周计算的演奏者日常活动的小提琴图表。

这是一张玩家每天的活动时间分布图。

violin graph不仅可以显示一些汇总统计数据,如最大值、最小值和中值,还可以直观地显示分布情况。我们可以观察到周末比工作日分布更均匀,尤其是周六日。

以及6月份玩家和twitch观众的活动模式。

从上图可以看出,单变量时间序列是有一定规律的。一天中可预测的涨跌。这在以后讨论模型预测的时候会非常重要。

观察值=趋势季节性残差

我们需要确认的一个假设是,时间序列是平稳的,也就是说,均值和方差基本不会发生变化,这对于自回归模型是非常重要的。

但是很难从视觉上判断平均值和差值是否在变化,我们需要一种方法来检查这个问题。虽然从移动平均来看,我们可以看到在大多数情况下变化并不大,但我们需要确保使用统计检验具有统计显著性。

Dicky-Fuller检验是一种假设检验,通过它我们可以知道时间序列是否稳定。该检验的无效假设是时间序列是非平稳的。所以我们需要p值小于0.05,这样才能拒绝零假设。可以看到下面的p值小于0.05,所以我们确实可以拒绝零假设,它是非平稳的,说我们的数据确实有一个稳定的均值和方差。(代码见最后一个地址)

测试统计量:-7。36860 . 67868686861

p值:6.254742639140234e-11

建模

本文测试了三种不同的模型:Naive、FB Prophet和自回归。并对这三种模型的性能进行了比较。

使用单变量数据创建训练集和验证集不同于典型的表格数据。所以sklearn的TimeSeriesSplit函数可以帮助我们完成这项工作,将单变量数据拆分四次,进行交叉验证。分割后,应用模型并计算每个分割的评价指标(RMSE和MAPE)。对均方根误差(RMSE)和均方根误差(MAPE)进行平均。

def eval_model_perf(df: pdDataFrame,model: Callable[[pd。数据框架,pd。DataFrame],List[any]]) - None:' ' '使用RMSE和MAPE评估模型的性能。Args:df (DataFrame):输入DataFrame.model (DataFrame,List):正在评估的模型的预测值。'' RMSE _ metrics=[]mape _ metrics=[]tscv=timeseries split(n _ split=4)for train _ index,test _ index in tscv . split(df):cv _ train=df . iloc[train _ index]cv _ test=df . iloc[test _ index]preds=model(cv _ train,cv_test)rmse_eval=rmse(cv_test,preds)Naive _ eval=mean _ absolute _ percentage _ error(cv _ test,preds)rmse_metrics.append

Naive将前一个值预测为下一个值。这个在实践中没有任何意义。我们在这里只是作为比较。如果其他模型的结果没有它好,那么其他模型就没有存在的价值。

结果如下

2、FB先知

先知模型使用AM进行预测。

结果如下:

他的优点是:

没有太多参数需要调整。

自动缩放可以很好地缩放数据。

在将数据集发送到模型之前,您不需要了解太多关于数据集的信息。

但他缺点也很明显:

假设模型的季节变化是常数,不随时间变化。

比AR模型更难解释。

3.自回归模型

自回归模型通过前一次预测来预测后一次的值,也就是说后一次的预测值会使用前一次的预测结果。

结果如下:

优势:

您可以灵活地处理各种时间序列模式,并且更容易解释该模型的缺点:

很多参数时间序列数据需要先验信息才能更准确

总结

我们测试了三个模型来预测玩家的活动(实际上是两个有效的模型)。原始模型作为评估其他模型的基线。脸书先知模型是由脸书开发的,我们可以直接使用它。另一个模型是基于已知特征(如趋势和季节性等)的单变量自回归模型。).

在创建这些模型的过程中,最复杂的就是自回归模型,因为它需要大量的探索性数据分析。

FB Prophet不涉及超参数优化,不需要单变量数据特征的先验信息。模型的准确率为87%,RMSE ~19120。facebook Prophet模型的一个明显趋势是对下降趋势的夸大。但这已经很不错了。

FB Prophet模型虽然很好,但是没有打败自回归模型。自回归模型是一种更直观、更容易理解的模型。与线性回归类似,单变量数据被分解成线性组合。因此,模型的一个优点是更容易解释。缺点是虽然这个模型的性能比其他任何模型都好,但是确实需要一些数据知识。

自回归模型的另一个缺点是需要对基础数据有扎实的理解。FB Prophet模型不需要我们理解任何数据。这可能也是FB Prophet模型的一个缺点,因为它使用的是加性模型,解释起来更困难,也没有AR模型灵活。

自回归模型和FB Prophet模型似乎都表明,虽然有轻微的下降趋势,但在统计上并不显著,如假设检验所示。我们也发现我们的时间序列数据是稳定的,这是AR模型的要求。

作者:萨尔曼侯赛因

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/315789.html

(0)

相关推荐

  • 未来十年最有价值的资产,资产越多越好吗

    我们正处于一个财富巨变与焦虑的时代。

    生活 2021年11月10日
  • 法匠的意思,法匠是什么意思-组词(字义,诗词)

    词组法匠的意思,法匠是什么意思-组词(字义,诗词)基本解释详细字义 法匠拼音:fǎ jiàng注音:ㄈㄚˇ ㄐ一ㄤˋ解释:称美佛法精深之人。基本字义
    法fǎ(ㄈㄚˇ)
    1、体现统治阶段的意志,国家制定和颁布的公民

    阅读 2021年11月29日
  • 洗纹眉多少钱,洗一次眉毛现在市场价多少钱

    洗眉多少钱(现在价格)网友提问:洗眉多少钱(现在价格)优质回答:我自己在合肥一家差不多经营了10年的一家店洗的,初始定的普通激光800块包洗干净,后到店了解之后,决定选择1800块的激光皮秒(普通皮秒的升级版)。现在出现

    攻略 2021年11月19日
  • 写李白的小标题(写李白最好题目)

    写李白的小标题(写李白最好题目)魂游天下,蓬莱文章建安骨一身傲骨,忽闻岸上踏歌声,让别人去说,读李白的渡荆门送别中的仍怜故乡,这位被天堂逐入凡间的谪仙人,如果你是写乡村作文应该是乡村四月闲人少,李白。
    敬亭惬素尚,瑶草恐

    电商 2021年10月4日
  • 倩女幽魂绝技多少钱,倩女幽魂手游绝技价格

    倩女幽魂手游绝技最低多少倩女幽魂哪个职业绝技便宜?百步穿杨不算是一个输出技能,而是射手的控制技能,虽然造成物理伤害,但是伤害不足以高到秒人的程度,主要是沉默目标。 实用性来说,射手本身比较脆皮职业 倩。倩女幽魂画魂100绝技多少银两?倩女幽魂手游中的绝技是银两买不到的。需要氪金。 倩女幽魂手游中的绝技是银两买不到的。需要氪金。倩女幽魂幸运技能可以点到多少级?1.生活技能五鬼运财: 生活技能中的五鬼运财,最高可以点到20级 点满五鬼需要消耗: 银两(银票):6517038 帮贡:3610 所需等级:65 得 4.幸运总管: 幸运总管那。倩女幽魂绝技赠送积分需要多少?15000。如果是结拜或者

    阅读 2022年6月25日
  • 研究探索在不牺牲味觉和发酵能力的情况下降低面包中钠含量的方法

    在美国,大多数人都摄入过多的盐;成年美国人的食量通常是饮食指南建议的每日摄入量的两倍。面包似乎不是一个明显的罪魁祸首;然而,由于高消费量和较高的含盐量,烘焙食品是饮食中钠的主要来源。伊利诺伊大学的一项新研究探索了在不牺牲味觉和发酵能力的情况下降低面包中钠含量的方法。

    生活 2021年10月5日