我有一个相对简单的函数,有三个未知的输入参数,我只知道它们的上下界。我还知道我的所有数据的输出Y应该是什么。
到目前为止,我已经在python中进行了简单的网格搜索,循环遍历所有可能的参数组合,并返回Y预测值和Y观测值之间的误差在设定限制内的结果。
然后,我查看结果以了解哪组参数对每组样本表现最好,查看参数之间的权衡,查看异常值如何影响数据等。
所以实际上我的问题是-虽然我使用的网格搜索方法有点麻烦,但使用蒙特卡洛方法,如metropolis,有什么好处?
我目前正在研究MCMC方法,但在使用它们方面没有任何实际经验,在这种情况下,我不太清楚可能会得到什么。
我将非常感谢您的任何意见或建议
非常感谢
发布于 2013-01-09 21:41:30
当底层函数很复杂(有时太复杂而无法直接计算)和/或在高维空间中时,MCMC方法往往很有用。它们通常在其他方法都不可行或运行良好的情况下使用。由于您有一个简单的低维问题,我不希望MCMC方法对您有特别的帮助。
如果您能够在足够短的时间内对您的问题域执行足够精细的网格搜索,这可能是一种很好的方法。
如果你的函数是凸的,就会有很多well-known approaches这样的梯度下降。
如果你的函数有一个简单的函数形式,可以很容易地解决,但是你有大量的数据和粗略的异常值,RANSAC可能会很有帮助。
如果您的函数在未知位置有许多局部最小值,则simulated annealing可以很好地工作。
发布于 2013-01-09 21:39:17
当搜索空间变得更大时,进行详尽的搜索可能变得不可行。因此,出于需要,我们转向蒙特卡洛方法。
https://stackoverflow.com/questions/14236371
复制相似问题