Kaggle网站流量预测任务的第一个解决方案:从模型到代码的详细时间序列预测

< > >

作者:Artur Suilin



,我们将如何修正阿图尔绥棱县格鲁完成网站流量的时间序列预测竞争简介。
预测有两个主要的信息来源:

《黎族》的地方特色。我们看到一个趋势,我希望它会继续(自回归模型)在这个趋势;看到洪峰流量,知道它会逐渐衰减(移动平均模型);看到节假日流量增加,你知道假期后会增加流量(季节模型)。
。如果我们看自相关函数图,我们会发现年和年之间有很强的自相关和季节自相关性。
>

<img class=“内容中间对齐尺寸全wp-image-104691”src=“http://500dsj.qqwho.cc/image/2017/12/18/36.jpg”alt=“大数据”http://500dsj.qqwho.cc/image/2017/12/18/36.jpg“640”、“314”。

我决定使用RNN seq2seq模型预测,理由如下:

  • RNN是ARIMA模型的自然延伸,但更灵活的表现比有马。
  • RNN是非参数,大大简化了学习。想象用ARIMA的不同参数的145k序列。
    可以很容易地将模型注入到具有任何外部特性(值或类别、时间依赖性或序列依赖性)的模型中。

  • seq2seq天生适合这一任务:我们预测基于联合概率的下一个值(概率)的值(包括以前的预测)。使用以前的预测可以保持模型稳定,因为每一步都会积累错误。如果极端预测发生在某一步,则可能破坏所有后续步骤的质量。
    现在在深入学习中有很多天花乱坠的宣传。
    >
    特性工程 >

    RNN足以找到自己的特点和学习。该模型的功能清单如下:

    • 浏览量:原始值进行log1p()得到的时间序列的正常分布,不偏态分布。
      代理、国家、站点:这些特征是从Web URL中提取出来的,然后由一个热点编码。
      每周工作日:捕捉每周的季节性影响。
      年内自相关,季度自相关:捕捉每年和季度的季节性影响。

    • 网页受欢迎程度:高流量和低流量的页面有不同的交通模式的改变,这一特征(在页面的中间值)有助于捕捉交通量。页面功能失尺度信息因为每个页面序列是独立归零均值和方差。
    • 滞后综合浏览量:它将在稍后介绍。

      特性预处理
      所有的特征(包括一个热编码的特征)被归为零均值和单位方差。每个页面访问序列是独立化。

      时间依赖性特点(自相关、状态等)是“捉襟见肘”的时间序列的长度,即重复的tf.tile使用()命令每一天。
      从初始序列出发,对随机固定长度样本进行训练。例如,如果初始序列长度为600天,我们使用200天的样本进行训练,那么我们可以选择在开始的400天开始取样。
      抽样是一种有效的数据增强机制:训练代码随机选择每个时间步长的起始点,并在每一步生成无限量几乎没有重复的数据。
      “强>模型”、“强”>“>”的核心技术
      该模型主要由编码器和译码器两部分组成。


      编码器cudnn格鲁,cudnn大约是5到10倍的速度比TensorFlow RNNCells,但是成本不是很方便使用,并且文档不够完善。

      解码器的TF grublockcell,并封装在tf.while_loop()。循环中的代码是从前面的步骤中预测的,并添加到当前时间步长的输入特性中。
      >强>处理长时间序列 > > >

      LSTM /格鲁是相对较短的序列的一个很好的解决方案(小于100-300项目)。但对于较长的序列,对应/格鲁仍然有效,但它只会渐渐忘记信息包含的步骤时间早。TH的时间序列

      资料全部来自网络,如果有问题可以发邮件到站长邮箱