我对DeepAR算法的理解有一个问题。
我试着用这个算法来预测单个产品的销量。首先,我在日常频率上对一个SKU进行了尝试,但得到了以下错误消息:
ParamValidationError: Parameter validation failed:
Invalid type for parameter Body, value: [datetime我想,这个错误的原因是我的目标中有太多的“NaN”值。这可能是原因吗?(我没有应用任何类别或dynamic_feats)
然后我尝试按月频率进行预测,但结果是我没有足够的时间戳来进行算法。
是否可以通过"cat“或"dynamic_feat”运算符在DeepAR算法中对我的产品进行分组,这样我的目标中就会有更少的"NaN"-values?
我想按颜色、价格或大小等不同特征对产品进行分组。您是否知道这是否可能,或者我必须在应用DeepAR之前这样做吗?
提前感谢:)
发布于 2020-01-14 22:34:10
看起来错误是由boto (ParamValidationError)抛出的。我怀疑您没有使用正确的json格式来发送请求。请参阅示例here。
然后我尝试按月频率进行预测,但结果是我没有足够的时间戳来进行算法。
还有一周的频率,你可以尝试一下。但是,DeepAR也应该能够处理NaN值。
是否可以通过"cat“或"dynamic_feat”运算符在DeepAR算法中对我的产品进行分组,这样我的目标中就会有更少的"NaN"-values?
通常,cat用于将一个或多个类别分配给时间序列。但是,我看不出这应该如何影响目标中的NaN值的数量。此外,DeepAR在预测中不会发出NaNs。
我想按颜色、价格或大小等不同特征对产品进行分组。您是否知道这是否可能,或者我必须在应用DeepAR之前这样做吗?
是的,这就是cat的作用。documentation解释了如何对这些类别值进行编码。
发布于 2020-01-09 14:47:19
为什么你有这么多的NaN值?是因为你不知道这些天的价值,还是因为这些天没有销售?在将数据输入(any)算法之前,您需要处理缺少的值。如果您可以将NaN值替换为零值或任何其他估算方法,您将会遇到更少的问题。
当您添加更多类别(“猫”值)时,例如品牌、颜色、大小和类似值,DeepAR是最好的。DeepAR使用这些类别来计算嵌入,这些嵌入编码了这些类别的“含义”,因为它们影响了销售价值。例如,如果你有10种颜色,其中一些是“女孩”的,一些是“男孩”的,或者一些是“疯狂”的,一些是“纯色”的,嵌入计算有可能捕获这些属性并使用它们来提高计算的准确性。
价格通常是不同的,因为它们可以是弹性的(应用折扣或促销),它们应该表示为"dynamic_feat",并且您应该为每个日/月/其他序列频率添加它们的值。
如果你的价格是静态的,你仍然可以通过将它们转换成存储桶来使用它们("cat"),比如“高”/“中”/“低”。这也是分析您拥有的功能并将它们转换为您要使用的算法的功能和优势时的标准方法。在这种情况下,DeepAR很好地编码类别(静态和低基数特征),并计算与目标可能相关的数字特征的回归。
https://stackoverflow.com/questions/59599787
复制相似问题