使用许多参数最大化函数(python)

时间:2013-07-23 15:12:56

标签: python function math mcmc

首先,我要说我缺乏科学数学或统计学的经验 - 所以这可能是一个众所周知的问题,但我不知道从哪里开始。

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

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

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

  • 功能稳定,意味着f值越高意味着参数的猜测越好,反之亦然。

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

有关如何改进搜索最佳参数的任何建议将不胜感激。当谷歌搜索这个问题时,linke MCMC出现了,但这似乎是一种非常先进的方法,我需要花费大量时间来理解这种方法。 基本提示或概念对我的帮助不仅仅是详细阐述方法和算法。

3 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:9)

不要自己动手。安装SciPy并使用其optimization例程。 scipy.optimize.minimize看起来很合适。

答案 2 :(得分:0)

除非您的任务表明您无法执行此操作,否则您始终可以将列表用作一个参数。列表会使它变得更容易。