【发布时间】:2020-04-21 14:49:58
【问题描述】:
我有一个数据集,其中包含过去 3 年中 1000 家公司商店的每日销售额观察结果(当然,除了销售数字之外,我还有以下特征:促销、商店类型、分类类型等)
目标是建立一个模型来预测未来的销售。您将如何从 1000 个时间序列中构建模型并对其进行概括,以便可以使用它来预测具有某些特征的 1 家商店的销售额?
数据集类似于:https://www.kaggle.com/c/rossmann-store-sales/notebooks。
根据 Kaggle 上提供的此数据集的解决方案(在 python 中),我注意到几乎每个人都在使用 XGBoost,但我对所提供的这些解决方案有一些疑问,我会感谢您的澄清。特别是:
人们如何才能将每个商店在 3.5 年内每天观察超过 1000 家商店的数据加载到模型中,而无需对商店 id 的第一个进行一次性编码?模型是否会在某个时候失败,因为它会知道 shop #1040 比 shop #35 好 - 仅仅是因为 shop id?
如果我们使用传统的 one-hot 编码,这将创建 1000 个无法管理的新列 - 但是有没有办法使用 one-hot 编码解决这个问题?
为什么人们通过添加:日、周、月作为单独的变量来提取“日期”特征?这不是误导模型吗?为什么人们不将“日期”指定为索引呢?
【问题讨论】:
-
欢迎来到 SO!您的问题更适合 stats.stackexchange.com。 SO 适用于定义明确的编程问题。
-
您的问题可能会被移动或关闭,因此我的意见无论如何都可以帮助您。 1.&2.是否要将 store 作为变量完全取决于您。商店 x 优于商店 y 可以作为大量隐藏地理属性的代理。 Python 中唯一的方法是一次性编码,而如果您将其声明为分类变量,R 会为您处理它。当然,内存使用量会增加,权衡是你的。 3. 在星期几、月份中的星期和一年中的月份级别捕捉季节性。
标签: python machine-learning time-series xgboost forecasting