如何在weka中使用非目标属性进行时间序列预测?

时间:2015-07-22 04:50:19

标签: time-series weka forecasting

我使用了weka timeseries插件w /算法,如SMOReg(带RegSMOImproved和RegSMO)和HoltWinters。但是对于他们所有人我都观察到只为目标属性创建了滞后变量。

如何为其他(非目标)属性创建滞后变量,以便算法也使用这些?

例如:我有5个属性“,a,b,c,d” 其中我必须预测“a”。即。 “a”是“目标”属性 我观察到只为“日期”和“a”创建了滞后变量,并且算法使用了b,c或d的 none

请注意,“叠加”对我没有帮助,因为我没有b,c或d的“未来”值

我需要的是为b,c和d创建滞后变量,并将它们用于所选算法的预测

==================== update ====================

我尝试了以下方法:

  1. 使用“filters->无监督 - >复制”过滤器制作a,b,c,d变量的多个(14)副本
  2. 使用“filters->无监督 - > TimesSeriesDelta”过滤器将副本按连续值移位(例如,第1份副本1天,第2份副本2天,......第14次副本14天)
  3. 使用来自“classify”面板的SMOReg(w /%-split为70%)而非“预测”面板(w / .3支持培训评估)
  4. 但面临以下障碍: 1.可以一次只分类(回归,实际上,因为目标是数字)一个变量 2.不接受“日期”属性(即使“日期”值为数字20150601,20150602,20150603等) 3.跑了很长时间然后坠毁:(

    任何指导都将不胜感激

    ps:上面的例子是人为的。在我的实例中,我有日期+8个属性(所有这些都是数字),其中3个是目标(多变量预测)

    ==================== update ====================

    https://github.com/log0ymxm/weka-timeseriesforecasting/blob/master/src/main/java/weka/classifiers/timeseries/core/TSLagMaker.java#L2974

    显示正在删除额外属性(非目标),因为(第3027行说明):

    // otherwise, this is some attribute that we are not predicting and
    // wont be able to determine the value for when forecasting future
    // instances. So we can't let the model use it.
    

    ==================== update ====================

    https://github.com/log0ymxm/weka-timeseriesforecasting/blob/master/src/main/java/weka/classifiers/timeseries/WekaForecaster.java#L576

    显示字段到滞后与字段到预测

    相同

1 个答案:

答案 0 :(得分:0)

从最近的2次更新中,我发现:

  1. 删除了非目标属性
  2. 只有目标属性滞后
  3. 我认为这是特定于算法的(例如,HoltWinters等),但它是timesseriesForecasting插件本身的一个特性/错误

    基本上我想要的是没有代码更改的可能:(