推荐产品
联系我们

地址:上海市长宁区仙霞路350号10幢3楼3034室

电话:021-62378659

传真:021-62378659

邮箱:0350zp@163.com

业内新闻

奈何用LSTM自编码器实行异常事项预测?含Python完

来源:博天堂ag,博天堂AG手机版,博天堂ag旗舰时间: 2019-07-22浏览次数:作者:澳门皇冠
澳门皇冠 对于每个数据科学家来说,进行极端事件预测是一个经常会遇到的噩梦。寻寻觅觅,我终于发现了处理这个问题非常有趣的资源。就我个人而言,我确实爱上了Uber研究人员发

  澳门皇冠对于每个数据科学家来说,进行极端事件预测是一个经常会遇到的噩梦。寻寻觅觅,我终于发现了处理这个问题非常有趣的资源。就我个人而言,我确实爱上了Uber研究人员发布的方法。在他们的论文(和 ,有两个版本)中,他们开发了一个基于机器学习的解决方案,用于预测每日乘客需求。他们的方法以其简洁易懂的解释和易于实施的特点而引起了我的注意。所以我的目的是用python重现他们的发现。我对这个挑战非常满意,并且最终我还提高了自己对回归预测的认识。

  1.开发一种稳定的方法来评估和比较keras模型(同时避免权重种子生成器的问题);

  4.处理嵌套数据集,即我们观察到的属于不同实体的问题(例如,不同商店/引擎/人员的时间序列等)。从这个意义上说,我们只为所有人开发一个高性能的模型!

  对于Uber来讲,对出行(特别是特殊日期里)的准确预测有许多重要的好处:更有效的驾驶员分配,以减少司机的等待时间,预算和其他相关任务。

  为了更准确地预测驾驶员对共享车辆的需求,Uber的研究人员开发了一种用于时间序列预测的高性能模型。他们能够将一个模型与来自不同位置(城市)的不同时间序列相匹配,该过程允许提取相关的时间模式。最后,他们能够针对不同的位置(城市)预测需求,优于传统的预测方法。

  对于这个问题,uber使用了他们的内部数据,即不同城市的出行数据,其包含了一些额外特征:天气信息、城市等级信息。他们的目标是以固定窗口数据(即过去一天)预测第二天的需求。

  不幸的是,我们并没有这种优质的数据,不过幸好我们可爱的kaggle粉丝给我挑选了一个优质的数据集:Avocado Prices Dataset ()。这个数据展示了两种不同品种的鳄梨的历史价格,和其在美国多个商场的销量。

  我们选择这个数据主要是因为我们需要具有时间依赖性的嵌套数据集:我们拥有一共54个商场的鳄梨销售记录,也就是我们所说的时间序列数据,如果算上不同种类(常规和有机),我们就有108个时间序列。uber的科研人员强调这种数据结构非常重要,因为它可以让我们的模型发现其中重要的隐藏关系。在我们使用LSTM Autoencoder做特征提取的时候,序列间的关系也会为我们模型的效果带来提升。

  我们使用了从开始到2017年末为止的售价数据搭建模型,而18年最开始两月的数据我们拿来做测试数据。我们分析时,应该考虑到所有数据的回归曲线,图中显示的频率较弱,所以我们决定:给定一个固定的窗口,即过去四周数据作为训练集,预测即将到来的价格。

  为了解决我们的预测任务,我们复制了Uber的一个新结构模型,它时一个但模型却为我们提供了复杂的预测功能。如下图所示,我们训练LSTM Autoencoder作为我们模型的第一部分:自动特征提取,这对于大量捕获复杂的动态时间序列是很重要的。特征向量通过拼接后作为新的输入传到LSTM Forecaster模块中做预测(autoencoder模块输入的是多个时间序列,这里是拼接好的单一向量)

  我们的forecaster模块的工作流程十分好理解:我们有一个初始的窗口,代表着不同商场的若干周售价数据。我们首先使用这些数据去训练我们LSTM Autoencoder, 之后删除encoder模块,并利用它制作特征生成器,最后再去训练我们forecaster模块中的LSTM 模型做预测任务。基于真实/存在的回归值和人造向量我们可以获得的下周的鳄梨预测价格。

  我们会将特征提取部分计算出来并拼接作为其他变量。关于这点我和uber的解决方案有点偏差:他们建议使用整合技术(例如平均)将特征向量聚合,作为我们特征向量的提取操作。我决定让它们保持原样,因为在我的实验中这样可以给我带来更好的结果。

  最后,我们已经准备好看一些结果和做预测。最后一步所要做的是,为了进行结果对比,我们需要创建一个对抗模型,制造出一些具有健壮性预测方法的结果。

  个人来看,评估两个不同程序的最好方法是尽可能多的重复自身,为了能够让它们能够聚焦在真正需要关注的点上。在这次实践中,我想展示一些LSTM自编码能够作为一个有力的工具,产出对时序数据预测有利的相关特征的证据。在这种层面上去评估我们方法的好处,我决定去开发一个新的预测价格的模型,用之前预测NN同样的结构。

  在自然中对于事关利益的极端事件时序预测是非常重要的。另外,如果你尝试创建一个基于神经网络的模型,你的结果也将会受制于神经网络初始权重初始化,为了克服这个缺点,有一些现存的方法来应对不确定性估计:从贝叶斯到基于bootstrap理论。

  在uber研究员的工作中,他们融合来bootstrap和贝叶斯方法来创建一个简单、健壮、有确定便捷的、并且易收敛的模型。

  这项技术是非常简单并且实用,我们已经部署上来。如下图所示,在神经网络前馈过程中,dropout应用在每一层中,包括编码层和预测网络。结果,编码层随机dropout能够在嵌入空间更聪明的输入,让模型泛化能力增强,而且传播更远通过预测网络。

  很python的说,在神经网络中我们简单增加一些可训练的dropout层,在预测中我们激活它们(keras预测中去除来dropout),下边是我用过的一些简单功能,简化为:dropout 激活,特征串联,预测所有的数据。

  为了最后的评估,我们必须迭代调用上边的函数,存储它们的结果。我也可以计算出在每一次迭代中的预测分值(我选择的是均绝对值误差)。

  我们必须设置超参数,就是迭代次数,dropout比率。存储每一次预测分值之后,我们可以计算均值,标准。


关于我们 简介 企业文化
联系我们

地址:上海市长宁区仙霞路350号10幢3楼3034室

电话:021-62378659

传真:021-62378659

邮箱:0350zp@163.com

扫一扫
Copyright ©  2015-2025 博天堂AG手机版  版权所有
html地图|xml地图