2015-07-22 101 views
1

我已經使用weka時間序列插件w /像SMOReg(w/RegSMOImproved和RegSMO)和HoltWinters算法。但對於他們所有人,我已經觀察到,滯後變量僅爲目標屬性創建。如何在Weka中使用非目標屬性進行時間序列預測?

如何爲其他(非目標)屬性創建滯後變量,以使算法也使用這些變量?例如:我有5個屬性「,a,b,c,d」 其中我必須預測「a」。即。 「a」是「目標」屬性 我觀察到滯後僅針對「日期」和「a」和無B,c或d的由算法使用

筆記創建變量「疊加」並不能真正幫助我,因爲我沒有b,c或d的「將來」值。

我需要的是爲b,c和d創建滯後變量,它們用於通過所選算法預測

====================更新====================

我嘗試以下方法:

  1. 使用 「過濾器 - > unsupervised->複製」 過濾器,使A,B,C的多個(14)份,d變量
  2. 使用「過濾器 - >無序監控 - > TimesSeriesDelta「過濾器,通過連續的值移動拷貝(例如,第一個拷貝1天,第二個拷貝2天,...第14個拷貝14天)
  3. 使用來自」分類「面板的SMOReg %-split of 70%)而不是「預測」面板(w/.3支持培訓評估)

但面臨以下障礙: 1.不能接受「日期」屬性(即使「日期」值是數字20150601,20150602,20150603等等也是如此)1.可以歸類(實際上,因爲目標是數字,所以退回)一次只有一個變量 上) 3.跑了很長一段時間,然後墜毀:(

任何指導將不勝感激

PS:上面的例子是人爲的。在我的真實的例子,我有日期+ 8點的屬性(所有的數字),其中3是目標(多元預測)

================== ==更新====================

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. 

====================更新=================== =

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

顯示字段到滯後是相同的字段到預測

回答

0

從最後2次更新,我發現:

  1. 非目標屬性除去
  2. 只有目標屬性是滯後的

我認爲這是算法特定的(例如, HoltWinters等),但它是一個時間序列的功能/ bug預測插件本身

基本上我想要的是不可能沒有代碼變化:(