2

在我之前的帖子中,我询问了使用 Encog AI 框架进行时间序列预测的问题。现在我有 3 个与使用支持向量机预测多个输出的可能性有关的问题。

1)澄清一下,我想使用前 10 天的 deviceConsumption 和 TotalPower 来预测未来 5 天的 deviceConsumption。可能吗?

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();
4

1 回答 1

1

对于问题 1 和 2:

SVM 将您的数据集分为两类。当您训练时,它最终会为您提供一个将两个类分开的超平面。然后当给出一个新点时,你可以检查它,它会告诉你它属于哪个类。

我认为您正在寻找的是某种类型的插值:

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

这使您可以根据以前的数据获取新的数据点。

于 2013-04-26T13:35:48.043 回答