Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 预测每周计数_Python_Machine Learning_Forecasting - Fatal编程技术网

Python 预测每周计数

Python 预测每周计数,python,machine-learning,forecasting,Python,Machine Learning,Forecasting,我的每周销售数据如下: date Total_sales 2016-01-04 10 2016-01-05 72 2016-01-06 64 2016-01-07 94 2016-01-08 94 2016-01-09 158 2016-01-10 65 2016-01-11 70 2016-01-12 115 2016-01-13 126 2016-01-14 140 2016-01-15

我的每周销售数据如下:

date           Total_sales
2016-01-04     10
2016-01-05     72
2016-01-06     64
2016-01-07     94
2016-01-08     94
2016-01-09    158
2016-01-10     65
2016-01-11     70
2016-01-12    115
2016-01-13    126
2016-01-14    140
2016-01-15    179
2016-01-16    181
2016-01-17    123
2016-01-18     96
2016-01-19    111
2016-01-20    199
2016-01-21    184
2016-01-22    215
2016-01-23    257
2016-01-24    151
2016-01-25    114
2016-01-26    209
2016-01-27    190
2016-01-28    208
2016-01-29    218
2016-01-30    243
2016-01-31    150
2016-02-01    147
2016-02-02    173
2016-02-03    168
2016-02-04    169
2016-02-05    142
2016-02-06    188
2016-02-07    130
2016-02-08     82
2016-02-09    102
2016-02-10     89
2016-02-11     93
2016-02-12     97
2016-02-13     75
2016-02-14     39
2016-02-15     54
2016-02-16     39
2016-02-17     44
2016-02-18     44
2016-02-19     38
2016-02-20     53
2016-02-21     31
2016-02-22     24
2016-02-23     27
2016-02-24     17
2016-02-25     10
2016-02-26      8
2016-02-27     12
2016-02-28      5
2016-02-29      1
原始数据具有具有日期变量和事务的其他属性的事务的每一行。我已经按日期对它进行了分组,并在这里计算了日期

现在,如果我再次按周分组,如下所示:

df.groupby([df.transaction_date.dt.week])['transaction_date'].count()
数据如下所示:

1.0     557
2.0     934
3.0    1213
4.0    1332
5.0    1117
6.0     577
7.0     303
8.0     103
9.0       1
其中1.0 etc是周编号

现在我想根据这些数据预测每周销售量

任何建议,如果我应该只使用一个基本的线性回归对这个数据(问题是它只是一个单变量数据(每周计数),所以我不确定是否有一个线性回归可以尝试在这里,因为这里没有IV)


那么,有没有关于如何在这些小数据点上进行预测的建议?

由于您的时变数据很小,您可能应该选择一种统计模型,例如,在您的案例中,时间序列模型。ARIMA或自回归综合移动平均(ARIMA)模型用于寻找时间序列模型与时间序列过去值的最佳拟合。预测将分为三个步骤,如下所示:

  • 模型识别和模型选择:确保变量是平稳的,识别相依序列中的季节性(必要时进行季节性差分),并使用相依时间序列的自相关函数和偏自相关函数图来确定哪个(如果有)模型中应使用自回归或移动平均分量

  • 使用计算算法进行参数估计,以获得最适合所选ARIMA模型的系数。最常用的方法是使用最大似然估计或非线性最小二乘估计

  • 通过测试估计模型是否符合平稳单变量过程的规范来检查模型。特别是,残差应相互独立,且随着时间的推移,其均值和方差应保持不变。(绘制随时间变化的残差均值和方差,并执行Ljung-Box检验,或绘制残差的自相关和偏自相关,有助于识别误判。)如果估计不充分,我们必须返回到第一步,并尝试建立更好的模型

  • 关于这一点:

    关于它的python实现,python中有一个
    [statmodels][1]
    包,您可以利用它。我建议您使用两种参考资料,它们可以为您提供python实现的完整解释


    除此之外,您可能还想尝试随机森林回归和XGBOOST,但我的建议是第一次尝试
    ARIMA
    ,因为您的数据与时间有关

    如果你画一张图,你会看到你正处于一个波动的末端,因此,ARIMA可能不是解决方案(因为它只能拟合多项式模型)

    为了消除波动,您可以首先使用累积数据,然后拟合逻辑曲线(不要与混沌逻辑图或逻辑逻辑逻辑图混淆)

    然后,您会发现您的销售填补了6745套的市场利基,其中6137套已经售出。目前仍有608台待出售。他们将遵循递减模式:第9周60,第10周27,第11周12,第12周5,。。。剩下的将更多地取决于是否继续销售产品的战略决策,而不是填补市场利基


    由于您的数据依赖于时间,您可能应该尝试ARIMA之类的时间序列模型,但迄今为止您是否尝试过任何方法?我正在考虑尝试LSTM,因为我目前知道可以在序列数据上使用LSTM。我不太熟悉ARIMA,尤其是如何在Pythonb中实现它,但我的数据非常小(每周的数据点只有9个),我想LSTM对此不起作用。ARIMA只需要9点就可以工作吗?如果你有这么小的数据集,我认为使用LSTM不是一个好的选择。是的。Python中快速ARIMA iImpleTention的任何资源?谢谢