使用时间序列数据预测《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-05 19:48:221、欧拼音:[ōu]。2、组词:(1)欧化 造句:互联网的横空出世、无处不在的广告宣传、不规范的大众传媒、不负责任的外文翻译及欧化的文学创作都对汉语造成了一

    生活 2021年11月5日
  • 校园外卖配送团队搭建、大学生外卖团队的发展前景怎么样

    校园外卖配送团队搭建校园外卖配送团队搭建、大学生外卖团队的发展前景怎么样一、大学校园送外卖有错吗?
    外卖对大学校园是利大于弊?外卖动了谁的奶酪?试想一个极端的例子,如果学校的食堂也能达到社会一般餐饮服务水平,将是一个什么

    生活 2021年11月11日
  • 这次,微软真的要“硬”起来了

    无论是开放的 Android 系统,还是封闭的 iOS 系统,系统发布之初开发者就为系统预留了应用商店,虽然 Android 系统不像苹果 iOS 一样限制只能从应用商店安装应用,但不可否认的是,Google Play 仍在 Android 用户眼中是一个重要的应用安装来源。

    科技 2021年11月21日
  • 乘胜的意思(字义,诗词)

    词组乘胜的意思(字义,诗词)基本解释详细字义 中英翻译乘胜拼音:chéng shèng注音:ㄔㄥˊ ㄕㄥˋ解释:趁着胜利的形势。精选例句1、侦查人员要乘胜追击,不依不饶,穷追不舍,并且要紧扣其心理,宜讲揭发他人,

    阅读 2021年11月19日
  • 狂人日记好词好句摘抄(关于狂人日记段落赏析)

    狂人日记好词好句摘抄(关于狂人日记段落赏析)1.我翻开历史一查,这历史没有年代。歪歪斜斜的每页上都写着“仁义道德”几个字,我横竖睡不着,仔细看了半夜,才从字缝里看出来,满本上都写着两个字“吃人!
    2.凡事总需研究,才会明

    阅读 2021年4月2日
  • 大笑是名词还是动词(笑容是名词)

    大笑是名词还是动词(笑容是名词)你的快乐。哈哈大笑响度大,如你的聪明,前边三个词在一定语境下也可以转化为名词,动词。哈哈大笑含义更丰富哈哈的笑声大部分只能当作名词性的部分使用吧哈哈大笑举例子当他穿着破烂的衣服走进教室,她

    营销 2021年10月11日