首先,让我说我缺乏科学数学或统计方面的经验 - 所以这可能是一个非常着名的问题,但我不知道从哪里开始。使用多个参数最大化函数(python)
我有一个函数f(x1, x2, ..., xn)
我需要猜测x'ses并找到f
的最高值。该功能具有以下属性:
总数或参数通常在40-60左右,所以蛮力方法是不可能的。
从0.01每个x范围的可能值至2.99
功能是稳定的,这意味着更高的F值意味着对于参数猜测越好,反之亦然。
到目前为止,我实现了在python一个非常基本的方法。它最初将所有参数设置为1,随机猜测新值并检查f是否高于以前。如果不是,则回滚到之前的值。 在一个有10000次迭代的循环中,这似乎在某种程度上起作用,但结果远不是完美的。
有关如何改进搜索最佳参数的任何建议将不胜感激。当用google搜索这个问题时,MCMC出现了,但这似乎是一种非常先进的方法,我需要很多时间才能理解该方法。 基本提示或概念将帮助我更详尽的方法和算法。
欢迎来到SO! 我相信这个问题有一个正式的解决方案,但我的第一个猜测是贪心算法......对于每个'xn',找到最大化'f'的'xn'的值并重复?这取决于'f'的性质。思考? –
你碰巧知道该函数是否有极少数,或者预计会有很多?如果相对较少的最大值,你可以尝试[梯度下降](http://en.wikipedia.org/wiki/Gradient_descent) –
如果你发送一个未知数量的变量给一个函数,我建议将它们存储在数组,列表或字典。可能是你的情况列表。 – Josh