我需要创建一个预测模型来预测每天的物品数量...
这就是我的数据在数据库上的样子...
item id |date | quantity
1000 |2020-02-03 | 5
我所做的将日期转换为:
我使用RegressionFastForest,RegressionFastTree,LbfgsPoissonRegression,FastTreeTweedie在100,000个项目的数据集上训练了该模型
但是结果不是很好( RMSE得分3.5-4 )
我做错了吗?
我正在使用ML.NET
谢谢
答案 0 :(得分:0)
有几种时间序列预测技术。但要点是:我们不寻求value
对date
的依赖。相反,我们正在寻求value[i]
对value[i-1]
的依赖。
最常见的技术是 ARIMA 模型和递归神经网络。我建议阅读有关它们的信息。但是,如果您没有太多时间或其他时间,那么有什么可以帮助您的。这是 Auto ARIMA 模型。
自动ARIMA的实现至少在Python和R中存在。这是python版本:
from pyramid.arima import auto_arima
model = auto_arima(y)
其中y
是您的时间序列。
PS 尽管它被称为 auto 模型(这意味着该算法将自行选择最佳超参数),但您仍应了解其作用: p ,q,P,Q 和 S 表示平均值。
答案 1 :(得分:0)
直接对数据应用线性回归存在几个问题。
1)如果item id
是种类的索引并且不反映商品的物理属性,则它是一种分类特征。使用OneHotEncoding将其替换为易于回归的标签。
2)如果您假设数据可能对一天/一周/月的时间具有周期性依赖性,请使用这些函数中的sin
和cos
。由于它不是周期性的,因此它不适用于年份。 Here是Python范例的不错指南。
祝你好运!
P。 S.我通常在具有分类特征(OneHotEncoding)的稀疏表示的任务中使用LogisticRegression进行基准测试。它不会像最新的NN解决方案那样好,但是可以为我提供一个基准测试的线索。