【问题标题】:What does the parameter seriesLength do in the ForecastBySsa-algorithm in ML.NET?ML.NET 的 ForecastBySsa 算法中的参数 seriesLength 有什么作用?
【发布时间】:2021-12-02 18:14:03
【问题描述】:

我目前正在尝试根据来自温度传感器的数据来预测温度。 我在 ML.NET 中使用ForecastBySSa-算法。这个算法有一个参数叫seriesLength,但是我不知道这个参数有什么作用。

在互联网上搜索了这个问题的多个相互矛盾的答案,例如:

  • “此参数指定执行预测时使用的数据点数。” (source)
  • " ForecastingPipeline 采用第一年的 365 个数据点 [trainSize = 365] 并将时间序列数据集采样或拆分为 seriesLength 参数指定的 30 天(每月)间隔。 这些样本中的每一个都通过每周或 7 天的窗口进行分析。 [windowSize = 7]" (source)
  • 并且文档本身指出参数seriesLength 是:“保存在缓冲区中用于建模的系列长度 (参数 N)。”(source

我已经尝试了几件事来弄清楚这个参数的作用:

  1. 我尝试在修复其他参数的同时改变 seriesLength。但这在进行预测时并没有改变任何东西。 我也尝试过改变seriesLength,同时改变参数:trainSizewindowSize,但这也没有做出任何改变。
  2. 我已经尝试在整个算法中跟踪seriesLength,它确实显示为某个缓冲区的大小。但是在进行预测时,该算法仅使用缓冲区的最后 L 个元素进行预测(其中 L 是windowSize,根据设计它必须小于seriesLength)。所以缓冲区中的其余元素似乎根本无关紧要?

所以我最好的结论是seriesLength 根本没有做任何事情。但这没有意义,因为它不是可选参数。

另一个结论可能是seriesLength 尚未完全实现,因为例如情况就是这样。参数isAdaptive,以注释结尾:“REVIEW:将在基于https://hal-institut-mines-telecom.archives-ouvertes.fr/hal-00479772/file/twocolumns.pdf中的FAPI算法的下一个版本中实现。”

这个参数seriesLength实际上是做什么的?

【问题讨论】:

    标签: c# algorithm machine-learning ml.net


    【解决方案1】:

    官方docs关于seriesLength的说法如下:

    保存在缓冲区中用于建模的系列长度(参数 N)。

    查看 ML.NET 的源代码,我可以看到 ForecastBySSA 算法使用下一个类:AdaptiveSingularSpectrumSequenceModeler。也许查看类内部将解释更多关于参数的信息。此外,找到答案的一个好方法是谷歌搜索自适应奇异谱序列。 ML.NET 倾向于为其算法使用与常用名称不同的名称,例如Python 库。

    我的最后一点建议是查看 ML.NET 在其 Github 上提供的示例:https://github.com/dotnet/machinelearning-samples/tree/main/samples/csharp/end-to-end-apps/Forecasting-Sales

    【讨论】:

    • 我已经准备好深入研究 AdaptiveSingularSpectrumSequenceModeler 类。正是在这里,我发现了我在第 2 点中所说的内容。谷歌搜索自适应奇异谱序列也没有让我更进一步,因为它没有给我回答 'seriesLength' 在 ML.NET 中的作用。
    • 那么 ML.NET 示例呢。也许他们可以帮助您解决问题??
    • ML.NET 示例也没有回答我的问题。
    猜你喜欢
    • 1970-01-01
    • 2016-06-11
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    • 2015-09-07
    • 2017-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多