会要求你的时间序列的值是不变的

时间:2019-10-08来源:本站原创
 

 

  如许的阐发有什么益处呢?通过度析发觉,有的商品数据点很稀少。需要别离成立模子,有些不需要成立模子。汗青上呈现一两次的环境,能够汗青平均和预测为零来处置。不消极端数据影响全体的结果。

  正在角逐中,我们用Keras做了Embedding实现,把商品、日期、门店做了Embedding,套几个全毗连的层,加一些工具,一曲到输出到成果。

  2014年Facebook正在论文中提出的方式——GBDT生成特征,论文认为决策树的模子能够从动做一些特征的组合和转换。

  方式三:基于模子预测,先建立一个简单的模子,锻炼后,跑一下模子,察看误差出格大的点,也有可能是离群值或者非常值。如许就能够针对他们做一些处置。

  用经验。比力简单的是用式的调优,先固定一个比力大的learning rate去调树的数量、树的深度、叶子节点分页需要的前提之类的。

  把所有想要测验考试的参数写下来。网格搜刮从动把所有的组合测验考试一遍,帮你找到最优的组合,把最优的成果前往给你。

  先辈行数据摸索,理解一下数据的分布,和大致的特征。后面怎样样去做你的模子。数值分布,统计查验。不成能上来就跑个模子,看结果。

  时间预测模子的示企图:GAM库,时间预测模子比力简单、预测值不变,可注释性强,黑点是实正在值,深蓝色预测值,淡蓝色是相信区间。由于有良多点捕获不到,所以误差会大。

  另:日期对齐也是时间序列预测问题中常见的手艺。好比中国春节正在一月或者二月,需要考虑汗青数据上春节的月份和本年春节的时间点是不是对的上。若是对不上是预处置,会提高预测的精度。还有一些营业相关的逻辑。好比销量为零,售价不为零之类。也需要做处置。

  组织方:微软加快器上海坐实正在数据来历:百威英博(命题,并供给脱敏的营业数据)提出三个问题:1.库存需求预测2.发卖数量预测3.经销商违规行为检测

  数据大致的环境——原始数据中,大致包含了百威全国400多店的数据,商品的品种800多个,一全年汗青发卖数据,切确到每日,数据400多万行。需要预测将来一个月内将来商品的销量。

  根本特征方面,百威供给原始数据集的特征,正在此根本上做了一些各维度的统计聚合,需要各维度聚合——时间、门店、商品。

  聚类方式:用无监视的方式,对原始数据进行聚类,把想象的门店或者产物放正在一路。别离来做子模子,或者把标签当做特征加进去。

  别的一点,Embedding把原始的特征输入,虽然特征工程少一些,但收集的超参数需要调整,并且良多然而没有理论根据,说白了就是测验考试,一曲测验考试哪个会比力好,MAPE: 0.654比平均值稍微好一点。比起XGBoost的基准线仍是差了良多。

  我们把预测值销量归一化,Embedding收集示企图,计较资本需求较大。超参数调优、收集布局。

  以上内容为不雅远数据手艺合股人周远手艺公开课分享笔记,未能取周远确认所有细节,仅供参考。该赛事为微软大中华区智能零售(Smart Retail)处理方案新创企业黑客松上海坐。(完)

  这种环境能够成立子模子特地去新品发卖数量的预测。融合模子:用了三个XGBoost、LightGBM、Random Forest,其实也能够用时间序列和神经收集,可是次要是由于计较资本无限,所以没有察看最终融合的结果。最初获得的MAPE: 0.236。比起基准线,好了良多。

  长处:对于离群值的鲁棒性较好数据分布要求低(不需要做预测力,神经收集一般会要求做归一化,让数据的分布分歧一些,不然模子结果会差。)可注释性强(每个节点城市告诉你,的法则)能够用于特征选择(锻炼完会告诉你权沉,能够顺次来选择一些特征,把精简之后的特征喂给其他的模子,好比线性回归等简单的模子)

  把超参数搜刮的过程当作高斯过程,库会从动测验考试分歧参数,然后寻找下一个最可能呈现比力低的loss的测验考试,搜刮空间的计较量比网格搜刮小良多。

  常用方式:数值分布,统计查验,左边曲方图,即数据的分布环境,皮尔森相关性查验(Pearson correlation coefficient),就是特征之间的相关度是什么样的。

  模子融合的方式来做结果提拔。做完这个超参数调整之后,一般来说,最初用模子融合的方式来做结果提拔,起首模子具有必然的差同性,能够选择分歧随机数种子,生成分歧的预测成果,最初再把各个模子融合起来。

  好比,日期衍生(能否是节假日,本周的节假日有几天,距离下一个工做日有几天)、商品、门店属性、各类高级计较。新商品从第一天起头售卖,累计的发卖。

  察看缺失值的环境。由于百威供给的数据质量很高,所以不需要考虑填充缺失值。(下图白色Unnamed:3为缺失值)

  基线: 汗青平均(一般来说对复杂的,现实数据的预测问题,对汗青销量平均做预测值)时间序列: SARIMAX, tbats, generalized additive model(广义加性模子)自回归/挪动平均是时间序列数据处置的根基模子。示范型: Random Forest, XGBoost, LightGBM。示范型是数据科学角逐常用的,XGBoost、随机丛林、由于是微软的角逐,我们测验考试了微软的LightGBM看看实现结果若何。还测验考试了深度进修的模子embedding、wide and deep learning, LSTM等模子。深度进修:embedding, wide and deep,LSTM正在特征工程之后,我们会做一些模子的选择。

  图片是Embedding的方式,由于深度进修的使用比力火的成果,大师都有乐趣把深度进修的模子,使用到贸易阐发里面。这个自创了word2vec的方式,让附近的门店取产物,本来是稀少的特征,但愿通过一系列的Embedding转换之后,转换到浓密的向量空间中,一些附近的商品门店,正在向量空间中距离比力近,如许起到了特征转换。

  图中为原始论文中的特征的建立体例,deep models那层要求输入是稠密型的,稀少是不克不及间接做输入的,所以要做转换,有的用Embedding等来做转换。

  方式一:汗青数据用折线图等形式画出来,从汗青中寻找商品和门店的行为纪律。有的有纪律性,有的没有。如下图:

  预测竣事后,会对模子做最终的调优。次要看模子会正在哪些点上发生误差。若何通过各类方式发生大的误差,误差最大的点要进行详尽深切的阐发,为什么会呈现如许的误差。日后我们通过各类方式去处理大误差。一个新产物,第一次正在要预测的月份售卖。卖出了几千份。用汗青数据很难预测精确。所以会发生误差。

  模子选择完后,需要进行模子的锻炼和调优,此中主要的一步是交叉验证,正在时间序列中,交叉验证有一个沉点——建立取实正在场景分歧的切分体例。正在时间序列顶用一个持续的一段时间去预测紧接着的时间一个时间切分,切分体例取实正在场景分歧,随机切分不是正在实正在场景中的切分体例。会影响结果。

  方式二:正则化。基于统计法则,汗青上某些值的平均值,比他两三个尺度差误差还要多的话,会认为非常值,我们会把这些值缩小一下。

  说白了就是把Input放进去之后,看每一棵树,落正在每一个叶子的节点上,以此做一个新的特征,原始论文中,把特征放正在一个逻辑回归的模子中去做,当然你也能够把输出的特征和原始的特征加正在一路,放正在XGBoost、或者FM(Factorization Machine 因子分化机,又称分化机械,旨正在处理大规模稀少数据下的特征组合问题)。

  比力常见的模子融合的方式是Blending和Stacking。是现正在有良多库曾经实现了,挪用很是便利。Stacking就是把各个模子的预测值预测出来,把预测值做为特征输入下一层模子中,下一层从动选择最好的融合参数,有的模子权沉高,有的权沉低。把最初融合好的预测值给输出。

  把线性模子的工具加进来,能够两个模子一路锻炼,线性模子次要做回忆功能,汗青上呈现的模式能够通过线性模子,回忆下来。

  Log预处置是时间序列和线性模子中经常会碰到。良多环境下,会要求你的时间序列的值是不变的,有时也会对预测值做Log处置,有时也会做差分处置。还有一些线性模子对残差,大大都假设是一个正态分布的残差。若是数值分布的偏度很高,也会有问题,会用log来做预处置。

  左边t-SNE图是所有门店的图,由于获得的数据门店都用的ID(全数字)来暗示,所以只能猜测是行为模式比力像、或者地舆比力近的门店是脱敏数据,所以没有法子查验。

------分隔线----------------------------