我需要建立一个预测模型来预测每天的物品数量.
这就是我在DB上的数据..。
item id |date | quantity
1000 |2020-02-03 | 5我所做的是将日期转换为:
我用RegressionFastForest,RegressionFastTree,LbfgsPoissonRegression,FastTreeTweedie在100,000个项目的数据集上训练了这个模型
但结果并不好(RMSE评分为3.5-4)。
我做错了吗?
我使用的是ML.NET,如果它的问题
谢谢
发布于 2020-06-07 09:32:34
有几种时间序列预测技术。但要点是:我们不寻求value对date的依赖。相反,我们正在寻求value[i]对value[i-1]的依赖。
最常见的技术有、ARIMA、模型和递归神经网络。我建议读一读关于它们的文章。但是,如果你没有太多的时间或其他东西,有一些东西可以帮助你。这是自动阿里玛模型。
自动ARIMA的实现至少存在于Python和R中。这里是python版本:
from pyramid.arima import auto_arima
model = auto_arima(y)其中y是您的时间序列。
P.S.,尽管它被称为自动模型(这意味着算法将自行选择最佳的超参数),但您仍然应该了解p、q、P、Q和S的含义。
发布于 2020-06-07 14:04:52
直接将线性回归应用于数据有几个问题。
1)如果item id是一个排序索引,并且不反映项目的物理属性,那么它就是一个分类特性。使用OneHotEncoding将其替换为回归友好标签。
2)如果假设数据可能对一天/一周/月的时间有周期性依赖,则使用这些函数的sin和cos。它不适用于年份,因为它不是周期性的。这里是一个很好的指南,其中包含了Python中的示例。
祝好运!
我通常在任务中使用LogisticRegression作为基准,使用稀疏的分类特征表示(OneHotEncoding)。它不会像最先进的NN解决方案那样好,而是给我一个基准看起来是什么样子的线索。
https://stackoverflow.com/questions/62243320
复制相似问题