15

首先,让我说我缺乏科学数学或统计学方面的经验——所以这可能是一个非常有名的问题,但我不知道从哪里开始。

我有一个函数f(x1, x2, ..., xn),我需要猜测 x'ses 并找到f. 该函数具有以下属性:

  • 总数或参数通常在 40 到 60 左右,因此不可能采用蛮力方法。

  • 每个 x 的可能值范围从 0.01 到 2.99

  • 该函数是稳定的,这意味着更高的 f 值意味着对参数的猜测更好,反之亦然。

到目前为止,我在 python 中实现了一个非常基本的方法。它最初将所有参数设置为 1,随机猜测新值并检查 f 是否高于以前。如果不是,则回滚到以前的值。在具有 10,000 次迭代的循环中,这似乎以某种方式起作用,但结果可能远非完美。

我们将不胜感激有关如何改进对最佳参数的搜索的任何建议。当谷歌搜索这个问题时,linke MCMC 出现了,但这似乎是一种非常先进的方法,我什至需要很多时间才能理解该方法。基本的提示或概念比详细的方法和算法更能帮助我。

4

2 回答 2

11

不要自己做。安装SciPy并使用其优化例程。scipy.optimize.minimize看起来很合身。

于 2013-07-23T15:18:04.327 回答
11

我想你想看看 scipy.optimize (http://docs.scipy.org/doc/scipy-0.10.0/reference/tutorial/optimize.html)。最大化是 -1* 函数的最小化。

于 2013-07-23T15:19:06.383 回答