0

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

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

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

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

4

1 回答 1

0

据我所知,我应该破译“population.BestChromosome”中包含的奇怪公式并用它来推断未来的值,对吗?

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

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

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

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

于 2012-06-10T11:51:38.363 回答