app网站制作,简单asp网站,wordpress如何导入xml,网站建设的讲话要求时序模型——如何用Python进行时序模型预测的baseline预测#xff08;简单规则#xff09;
在对时间序列问题进行建模预测之前#xff0c;通常可以通过一些简单的规则对结果进行提前的预测#xff0c;可以作为baseline#xff0c;供之后的模型进行参考。很多数据分析的比…时序模型——如何用Python进行时序模型预测的baseline预测简单规则
在对时间序列问题进行建模预测之前通常可以通过一些简单的规则对结果进行提前的预测可以作为baseline供之后的模型进行参考。很多数据分析的比赛都可以基于对于背景的理解和数据分析获得有用的规则通过if A then B等方式设计出很好的基准方案。
一般我们可以采取一些简单的统计量作为特征
中位数较为稳健均值分布较符合正态分布时
01.时间序列规则法(周预测)
在之前的时间序列ARIMA模型中我们对于扫码量的周期性把握的不够明确从而导致预测出的结果与实际数据存在一定的差异性。因此我们在总结上述的经验同时对预测模型进行进一步的改进和数据分析。因此先以周为单位进行分析选取的数据是从2021年10月25日之后的八周数据数据如图1所示
1.1 均值预测
1factors初步的周期因子选为周一至周日的八周每天的平均值并将得到的7个平均值取平均值而周一至周日每天的均值除以7个均值的均值得到初步的factors1如下 2base最后一周的平均值作为初步的base1做预测时只要将周期因子乘以一个base就可以做下一周的预测。预测结果如图2所示 预测的结果与实际的第九周数据的效果图如图3所示
1.2 均值与中位数的融合
将均值和中位数的数值如下表所示由于周期因素的存在用统一的均值来作为base预测工作日和周末的客流量可能会不太准确为了优化base的选择我们可以将销量去周期之后再取均值作为base。 直接用最后一周的平均客流量作为base并不一定是最好的方法。也许最后三天或最后五天的均值能更好的反映最新的情况。但是我们不能直接对最后三天客流量取均值最后三天是周末这样取的base就偏大了。需要去掉周期性因素后再取平均。具体做法就是用客流量除以周期因子。按照比例进行融合过程如下 1 均值中位数1:9实现过程如下 预测的结果与实际的第九周数据的效果图如图4所示 2 均值中位数2:8实现过程如下 预测的结果与实际的第九周数据的效果图如图5所示 3 均值中位数3:7具体实现过程如下 预测的结果与实际的第九周数据的效果图如图6所示
其他情况以此类推得到预测数据。
1.3 总结
综上所述平均值和中位数之比为9:1时预测的效果最佳且误差最小剩余的其他比例算出来的意义也不大。但是这样预测效率较低不能得到未来一个月的预测结果只能进行滚动循环得到未来一个月的预测结果。因此为了使得算法的效率更加高我们以月为周期进行预测。具体实现过程如下并用代码实现落地。
02. 时间序列规则法(非自然月预测)
本次算法选取的训练数据为2021年10月1日至2022年3月1日五个月的数据以月为周期进行预测的步骤如图7所示
2.1 统计每日为周1-周7的频次
代码实现时通过定义了add_timestamp()和get_total_balance()函数去将时间数据进行割分从而得到每日为周1-周7的频次。得到该频次的目的是将星期中的周期性放入每日中从而使得之后得到的因子更加准确。得到的部分频次表如图8所示
2.2 获得加权因子
基于时间序列中按周预测时得到的最佳的因子factors进而去计算出每日的加权因子。加权因子的具体计算过程为频次*星期周期因子除以频次的总数。得到的部分结果如图9所示
2.3 通过非自然月的上个月预测下一个月本次用2月预测3月
由于2021年的2月只有28天因此以2月为基数进行预测3月三月得到的结果也是28天的。为了解决这一问题我们将所有的月份按照30天进行预测由2月的数据预测出的3月份的结果与真实数据效果图如图10所示
由非自然月的3月预测4月份的结果和真实的4月数据的效果图如图11所示
2.4 总结
以月为周期进行预测预测数据和真实数据的走势大体相同但是数据具有一定的滞后性以及预测的结果和真实数据也具有一定的差距后续需要对滞后性及其数据的准确性进行进一步的改进但也要避免过拟合。
模型落地代码实现如需要后台私信。