时间序列规则法快速入门
来源:互联网 发布:测井曲线解释软件 编辑:程序博客网 时间:2024/05/21 06:53
【转载】文章来源:http://www.jianshu.com/p/31e20f00c26f?spm=5176.9876270.0.0.7bf4734bZzuYYX
作者:dropout链接:http://www.jianshu.com/p/31e20f00c26f來源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。前言
以IJCAI-17口碑客流量预测大赛为背景,介绍一下时间序列规则法。IJCAI-17给的是蚂蚁金服的支付数据,具体来说,给的是店铺(实体店)过去每天的客流量,预测店铺未来14天每天的客流量。由过去外推未来,这是典型的时间序列问题。像支付数据、客流量数据、交通数据等,具有明显的周期性。从预测的角度说,周期性是核心,只要抓住了周期性,任务就完成了一大半。基本规则法快速入门
假设给定下面的数据,任务是预测第四周每天的客流量。
周一 周二 周三 周四 周五 周六 周日 周均值 第一周20107050250200100100第二周261866501801408080第三周1586760270160120100明显能看到周一到周日的周期波动。预测的核心任务就是尽可能准确的提取这种周期。第一步: 除以周均值,得到一个比例。第二步: 按列取中位数。就可以得到一组鲁棒的周期因子。
周一 周二 周三 周四 周五 周六 周日 第一周0.20.10.70.52.521第二周0.3250.2250.8250.6252.251.751第三周0.150.080.670.62.71.61.2中位数0.20.10.70.62.51.751做预测时,只要将周期因子,乘以一个base,就可以做下一周的预测啦。比如说,我们取最后一周的平均客流量100作为base,那么我们直接乘上周期因子,就得到下一周的预测:
周一 周二 周三 周四 周五 周六 周日 中位数0.20.10.70.62.51.751预测 (base=100)20107060250175100这里只拿了三周来举例。实际应用当然要取更长的时段啦。具体取几周以测试集的效果来确定。
针对周期因子的优化
按列提取中位数是一种简单而有效的提取周期因子的方法。中位数十分鲁棒,不受极端值的影响。但中位数损失了很多信息。实践中,可以在此基础上进一步优化。比如可以提取一个均值和一个中位数,然后将均值和中位数融合。融合的比例按照测试集的表现来确定。也可以根据与预测周的时间距离来赋予不同的权重。
针对base的优化
直接用最后一周的平均客流量作为base并不一定是最好的方法。也许最后三天或最后五天的均值能更好的反映最新的情况。但是,我们不能直接对最后三天客流量取均值(最后三天是周末,这样取的base就偏大了)。需要去掉周期性因素后,再取平均。具体做法,就是用客流量除以周期因子。
周一 周二 周三 周四 周五 周六 周日 第三周1586760270160120中位数0.20.10.70.62.51.751去周期以后的客流量758095.710010891.4120这样我们就可以取最后三天的平均,(108+91.4+120)/3=106.5,作为base。具体取多少天的,也要通过测试集的表现来确定。当然也可以按某些函数形式来给每天赋予不同的权重。
其他影响因素
在IJCAI-17的这个赛题里面,天气是非常重要的一个影响因素。可以提取残差,然后用残差训练一个天气的模型。推荐使用xgboost。其他影响因素可以如法炮制。
- 时间序列规则法快速入门
- 时间序列规则法快速入门(转自dropout)
- 时间序列分解入门
- reStructuredText(.rst)语法规则快速入门
- reStructuredText(.rst)语法规则快速入门
- drtools规则使用快速入门之一
- MySQL快速入门03----字符集 & 校对规则
- reStructuredText(.rst)语法规则快速入门
- CSS设计规则BEM快速入门手册
- 时间序列预测法
- Apache MINA 快速入门指南-时间服务器
- Apache MINA 快速入门指南-时间服务器
- 一种快速的时间序列线性拟合算法
- 什么是时间序列预测法?
- 简单时间序列平滑法
- R语言入门(1)时间序列分析
- R语言入门(2)时间序列分析原理
- R语言入门(4)时间序列分析
- python 函数一
- Room学习 第二课
- Redis开发实例(3)-String
- Sqlite3的安装及应用
- Spring Cloud Netflix Eureka源码导读与原理分析
- 时间序列规则法快速入门
- 微信获取用户地理位置信息的原理与步骤
- C++学习心得
- FAQ: 升级 MacOS High Sierra后 git 命令失效
- 多项式求解【模板】
- 让你轻松学会unity的状态机?
- 进程控制编程
- boot内核清理
- NOIP2017一条咸鱼的总结