有没有办法最大化/最小化R中的自定义函数?


18

我正在尝试最小化自定义功能。它应该接受五个参数和数据集,并进行各种计算,并生成一个数字作为输出。我想找到五个输入参数的组合,这些组合产生的函数输出最小。

Answers:


23

我写了一篇文章,列出了一些使用的教程optim

以下是相关部分的引文:

  • “ R函数optim和自定义创建的目标函数(例如减对数似然函数)的组合为自定义模型的参数估计提供了强大的工具。

  • 1
    最近,我一直在使用DEoptim作为一个不错的“没有起点”优化器。
    迈克·劳伦斯

    1
    约翰·迈尔斯·怀特(John Myles White)最近在R中的optim命令上发布的内容也可能引起关注
    安迪W

    @迈克同意; DEoptim提供了更强大的替代方案(DE =差分进化)
    日安倍晋三

    12

    除了Jeromy Anglim的答案外,我还有一些其他链接。

    optim在R 旁边,有另一个函数可以满足您的需求:nlminb。检查?nlminb?optim获取用法示例。

    有很多可以优化的软件包。我发现最有趣的是optimx软件包,还有很新的neldermead软件包,用于不同版本的单纯形算法。

    此外,您可能希望查看有关优化的CRAN Task View,以获取更多软件包

    请注意,我的所有建议均假定您具有确定性功能(即没有随机噪声)。对于不是严格确定性(或太大)的函数,您将需要使用诸如模拟退火或遗传算法之类的算法。但是CRAN Task View应该具有您所需要的。


    1

    您的职能是否连续且具有差异性?您可能可以对用户提供的导数或数值近似的导数使用optim。

    By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
    Licensed under cc by-sa 3.0 with attribution required.