使用aforge GA预测新的(未知)序列值

时间:2012-06-07 04:57:19

标签: c# artificial-intelligence genetic-algorithm aforge

我一直在搞乱aforge时间序列遗传算法样本,而且我有自己的版本工作,因为它只是'预测'斐波那契数字。

问题是当我要求它预测我给出的数组之外的新值(包含序列的前21个数字,使用5的窗口大小)它不会这样做,它抛出一个例外情况“数据大小应足以进行窗口和预测”。

据我所知,我应该破译“population.BestChromosome”中包含的奇异公式并用它来推断未来的值,是吗?有没有更简单的方法?我是否忽视了一些非常明显的东西?

我会在aforge论坛上询问,但开发人员不再支持它了。

1 个答案:

答案 0 :(得分:0)

  

据我所知,我应该破译这个奇怪的公式   包含在" population.BestChromosome"并用它来推断   未来的价值观,是吗?

你称之为"奇怪的公式"在数据分析中称为模型。您可以从过去的数据中学习这样的模型,并且可以为其提供新数据以获得预测结果。新结果是否有意义或仅仅是垃圾取决于您的模型的一般程度。许多技术可以学习非常好的模型,可以非常好地解释观察到的数据,但是当您将新数据输入模型时,这些模型不具有推广性并且会返回无用的结果。您需要找到既能解释给定数据的模型,也能找到可能未被观察到的数据,这是一个非常重要的过程。通常人们通过将已知数据分成两个分区来估计该模型的泛化错误:一个用于学习模型,另一个用于测试学习模型。然后,您需要选择对两个数据都准确的模型。您还可以查看我在此处提出的另一个问题的答案,该问题也涉及机器学习主题:https://stackoverflow.com/a/3764893/189767

我不认为你“忽略了一些非常明显的事情”,而是你面临着一个不容易解决的问题。

顺便说一句,你也可以在HeuristicLab中使用遗传编程(GP)。 GP的模型是一个数学公式,在HeuristicLab中,您可以将该模型导出到例如MatLab的。

Ad Fibonacci,Fibonacci数的闭合公式是F(n)=(phi ^ n - psi ^ n)/ sqrt(5)其中phi和psi是根据维基百科的特殊幻数。如果你想用GP找到它,你需要一个变量(n),三个常数和幂函数。但是,您很可能会发现输出相似的公式非常不同。机器学习的问题在于,非常不同的模型可以产生相同的输出。递归形式要求您将过去两个n的值包含在数据集中。这类似于学习时间序列回归问题的模型。