2013-04-26 77 views
2

在我以前的文章中,我詢問了使用Encog AI Framework進行時間序列預測。 現在我有3個問題與預測使用支持向量機預測多個輸出的可能性有關。使用支持向量機與Encog 3和多個輸出

1)爲了澄清一下,我想預測deviceConsumption的前5天使用deviceConsumption和TotalPower的前10天。 這可能嗎?

2)SVM是否使用TotalPower和deviceConsumption構建模式(如人工神經網絡)?

3)是否有可能在訓練集上訓練ANN或SVM並保存訓練網絡(用於ANN)或SVM訓練的超平面,並且在第二時間將一個值添加到訓練集的尾部並將這個新的訓練集提交給先前訓練過的網絡函數(或SVM),並再次訓練先前訓練過的網絡(或SVM),而不會失去所獲得的結果(所學到的啓發式)?

對不起,我的英語;-) 感謝

TemporalMLDataSet result = new TemporalMLDataSet(10,5); 
TemporalDataDescription desc = new TemporalDataDescription(
TemporalDataDescription.Type.RAW,true,true); 
result.addDescription(desc); 
TemporalDataDescription desc2 = new TemporalDataDescription(
TemporalDataDescription.Type.RAW,false,true); 
result.addDescription(desc2); 

for(int year = TRAIN_START;year<TRAIN_END;year++) 
{ 
    TemporalPoint point = new TemporalPoint(2); 
    point.setSequence(year); 
    point.setData(0, this.deviceConsumption[year]); 
    point.setData(1, this.TotalPower[year]); 
    result.getPoints().add(point); 

} 
result.generate(); 

SVM svm = new SVM(windowSize,true); 
SVMSearchTrain train = new SVMSearchTrain(svm,result); 
do { 
    train.iteration(); 
    System.out.println("Epoch #" + train.getIteration() + " Error:" + train.getError()+ " "); 
} while(train.getError()> 0.01); 

EncogUtility.evaluate(svm, result); 
Encog.getInstance().shutdown(); 

回答

1

對於問題1和問題2:

SVM的獨立數據集兩類。當你訓練它時,最後會給你一個超平面來分隔兩個類。然後,當給定一個新點時,你可以檢查它,它會告訴你它屬於哪個類。

我想你要找的是某種類型的插值:

http://en.wikipedia.org/wiki/Interpolation

,它允許你根據以往的數據,以獲得新的數據點。