阿里云ACA 使用时间序列分解模型预测商品销量(三)

本文接上一篇使用时间序列分解模型预测商品销量———计算回归的差值dQ

发表本博客的目的在于记录笔记,分享经验,无其他任何目的

计算回归的差值dQ

使用线性回归方程预测出来的是与时间无关因素对产品销量的影响,本实验假设用产品实际销量减去回归模型预测销量就可以得到随时间波动的产品销量。
从左侧拖出一个“SQL脚本”,将其重命名为“计算dQ”,连接至“预测Q”,并输入如下代码:

select monthno
,quantity
,prediction_result
,(quantity - prediction_result) as dQ
from ${t1}

这段代码计算了该产品真实销量q与线性回归模型预测销量Q的差值dQ,本模型假设dQ可用时间序列分解的方法进行预测。
在这里插入图片描述
单击“计算dQ”,左键单击“执行该节点”

dQ归一化
右键单击“计算dQ”,左键单击“查看数据”。
在这里插入图片描述
由于dQ是回归模型预测值与真实值的差,实际上是模型的误差项,所以dQ较为均匀地分布在x轴两侧,均值接近于0。
由于在乘法分解模型中dQ的均值需要做分母,可能会放大模型的误差,因此需要对dQ进行归一化。
归一化是一种用来消除量纲的数据预处理方法。通常来说,不同的指标有着不同的量纲,对不同指标进行归一化可以消除他们之间的量纲差异。在本次实验中,归一化的目的不是消除量纲,通过将dQ的值域都映射到[0,1]区间上的归一化方法可以消除dQ可能会放大模型误差的问题。

从左侧拖出“数据预处理”— >“归一化”组件,连接至“计算dQ”。
在这里插入图片描述

单击“归一化”,在右侧“选择字段”选择‘dQ’。
在这里插入图片描述
单击“归一化-1”,左键单击“执行该节点”。
待其运行结束,右键单击“归一化-1”–“查看数据”–“查看输出桩1
在这里插入图片描述
可以看出,归一化之后,dQ已经被投影到了[0,1]的区间上。

时间序列分解

这一步新用到的PAI组件有:
“数据预处理”–“归一化”:可以对数据进行归一化处理。

时间序列分解计算

接下来进行时间序列分解,要求的参数有U,T,C,S,R。其中,U直接取训练集的平均dQ即可,T则需要计算移动平均。

从左侧拖出3个“SQL”脚本,按如下方式连接并重命名:
在这里插入图片描述
在“计算U与Y”输入如下代码:

select a.monthno
,a.dQ_adj
,a.U
,(a.dQ_adj/a.U) as Y
from
(SELECT monthno
,dQ as dQ_adj
,avg(dQ) over(partition by 1) AS U
from ${t1}
) a

这段代码根据归一化之后的dQ与其均值U计算出了Y。
单击“计算U与Y”,选择“执行该节点”。单击“计算U与Y”“查看数据”

在这里插入图片描述
这里已经计算出了Y,接下来要对Y求移动平均。
在“聚合”输入如下代码:

select * from
( select monthno,lag(a.y,1) over (partition by 1 order by monthno) as y from ${t1} a
  union all
  select monthno,lag(b.y,2) over (partition by 1 order by monthno) as y from ${t1} b
  union all
  select monthno,lag(c.y,3) over (partition by 1 order by monthno) as y from ${t1} c
  union all
  select monthno,lag
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值