如何使用支持向量机对单变量进行时间序列预测。

mallsunita13mallsunita13 成员职位:4贡献我
2018年11月编辑 帮助

你好,

我是RapidMiner的新手。我正在从事一个项目,其中我使用支持向量机操作符来执行单变量的时间序列预测。我有一个数据集,由2014年2月至2014年10月9个非连续周的信息组成。变量名为“Total bytes”,即电子邮件的大小。我使用交叉验证算子,其中八周的数据是训练,第九周的数据是测试。

有人能帮我解决这个问题吗?

谢谢你!

萨尼塔

答案

  • Telcontar120Telcontar120 主持人,RapidMiner认证分析师,RapidMiner认证专家,会员职位:1635年独角兽

    苏尼塔,欢迎你!

    您的问题有点不清楚——您是否试图使用前一周的总字节值来预测上周的值?如果是这样,那么您可以使用时间序列操作符(在免费扩展中可用),特别是“预测序列”操作符,尽管您可能需要做一些ETL来将数据转换为正确的格式。

    如果您试图将“总字节数”作为其他属性的函数来预测,那么您可以在预测建模中使用任何其他方法,只要您使用的是您试图预测的时间点之前的属性值。

    回想一下,在这两种情况下,您都应该使用“set role”操作符将“total bytes”的角色设置为“label”,以便RapidMiner知道这是您试图预测的属性。

    布莱恩·T。
    Lindon合资企业
    乐鱼体育官方app数据科学咨询由认证的RapidMiner专家
  • mallsunita13mallsunita13 成员职位:4贡献我

    你好,

    谢谢你的回复。我看了Thomas Ott关于时间序列预测的视频,并建立了一个模型。在我的数据集中只有一个变量是“总字节”(电子邮件的大小)。所以我检索八周的数据,然后应用set角色操作符,并将“总字节”设置为“标签”。

    当我选择窗口操作符时,我想选择“系列表示”为“编码-序列-属性”,窗口大小为“10”,然后它会显示一个错误消息,“参数window-size指定窗口大小,但值10超过了属性的数量”。

    我将同样的事情应用于第九周的数据,并将两者(第八周和第九周的数据)与“交叉验证”操作符和“应用模型”连接起来。

    我的问题是

    • 我可以使用“按属性编码序列”操作符而不是“按示例编码序列”操作符吗?如何解决这个错误消息?

    如果我选择“序列表示”为“按示例编码-序列”,并设置窗口大小为“10”,然后运行该流程,那么它会在交叉验证(应用模型)的子流程下显示一条错误消息,即“输入示例集与训练示例集不匹配”。缺少属性:'Total weeks-9=Week1'。”

    实际上,我有9个电子邮件大小的excel文件,每个文件名代表一周的名称,例如Week1, Week2,....,Week9和每个文件只有一个属性“Total bytes”。所以我把所有的文件组合在一起,并添加第二列,表示周,以表明电子邮件的大小代表哪一周,如week1,…,week9。我想用八周的数据来预测第九周。

    请带路。

    谢谢

  • Telcontar120Telcontar120 主持人,RapidMiner认证分析师,RapidMiner认证专家,会员职位:1635年独角兽

    @mallsunita13我仍然不完全清楚你的数据结构,但我附上了一个非常简单的过程,只使用几个操作符生成时间序列预测。这个数据结构只有两列(属性),一个日期和一个值。在设置角色并对数据进行排序之后,使用predict系列操作符,您可以通过定义不同的窗口值来查看预测是如何变化的。这里不需要任何encode系列转换。假设您的数据与这里显示的示例文件类似,您应该能够根据自己的目的调整这个过程。否则@Thomas_Ott也许能比我更好地回答关于他的原创视频或相关系列问题的问题。

    布莱恩·T。
    Lindon合资企业
    乐鱼体育官方app数据科学咨询由认证的RapidMiner专家
  • Thomas_OttThomas_Ott RapidMiner认证分析师,RapidMiner认证专家,会员职位:1761年独角兽

    @mallsunita13而且@Telcontar120

    有几件事。编码序列by(属性/例子)是一个非常关键的,但它很容易理解,你只需要知道你的时间序列是如何在你的数据中表示的。如果您的时间序列数据是逐行(通过示例)输入的,那么您可以通过示例进行编码,如果您的时间序列数据是一个长行(示例),并且有100个列(属性),那么您希望通过属性进行编码。

    下面是我解释窗口操作符和支持向量机的其他一些帖子。

    http://community.www.kenlockard.com/t5/RapidMiner-Studio/Time-Series-using-Windowing-operator-in-RapidMiner/m-p/31791

    http://community.www.kenlockard.com/t5/RapidMiner-Studio/Financial-Time-Series-Prediction/m-p/33456

    好运!

  • Telcontar120Telcontar120 主持人,RapidMiner认证分析师,RapidMiner认证专家,会员职位:1635年独角兽

    谢谢你的解释@Thomas_Ott

    显然,预测序列操作符并不需要预先进行这个序列转换,因为我提供的示例过程即使在我没有应用“按示例编码序列”的情况下也会生成一个预测——这是因为当数据集中只有一个属性时,它会自动执行这个转换吗?

    布莱恩·T。
    Lindon合资企业
    乐鱼体育官方app数据科学咨询由认证的RapidMiner专家
  • Thomas_OttThomas_Ott RapidMiner认证分析师,RapidMiner认证专家,会员职位:1761年独角兽

    我很少使用Predict Series操作符。相反,我默认使用滑动窗口Xval操作符。

  • mallsunita13mallsunita13 成员职位:4贡献我

    亲爱的Brian T先生和Thomas Ott先生:

    非常感谢你的帮助。这些信息对我完成作业很有帮助。

    谢谢

    萨尼塔

  • Telcontar120Telcontar120 主持人,RapidMiner认证分析师,RapidMiner认证专家,会员职位:1635年独角兽

    很高兴有帮助!一旦您将您的系列转换为示例集,您可能还会对使用“拟合预测”操作符感兴趣。这允许您在内部操作符中指定任何适合的建模算法,例如线性回归或更复杂的函数,如SVM或神经网络。

    布莱恩·T。
    Lindon合资企业
    乐鱼体育官方app数据科学咨询由认证的RapidMiner专家
登录注册置评。