我正在尝试最小化自定义功能。它应该接受五个参数和数据集并进行各种计算,生成一个数字作为输出。我想找到五个输入参数的组合,它会产生我的函数的最小输出。
有没有办法最大化/最小化 R 中的自定义函数?
机器算法验证
r
优化
2022-02-01 09:08:47
3个回答
我写了一篇文章,列出了一些使用optim
.
以下是相关部分的引述:
optim
和自定义创建的目标函数(例如负对数似然函数)的组合为自定义模型的参数估计提供了强大的工具。- Scott Brown 的教程包括一个这样的例子。
- Ajay Shah 有一个
编写似然函数然后使用
optim
. - Benjamin Bolker 在他的著作《 R 中的生态模型和数据》中提供了大量的网络资料。网站上提供了章节早期版本的 PDF、Rnw 和 R 代码。第 6 章(似然性等)、第 7 章(模型拟合的血腥细节)和第 8 章(工作似然估计示例)。
- Brian Ripley 有一组关于 R 中的模拟和优化的幻灯片。特别是,它提供了对使用
optim
“.
除了 Jeromy Anglim 的回答,我还有一些链接。
旁边optim
还有一个基本 R 中的函数,它允许你想要什么:nlminb
. 检查?nlminb
并?optim
获取用法示例。
有很多包可以进行优化。我发现最有趣的是包optimx和非常新的用于不同版本的单纯形算法的neldermead包。
此外,您可能想查看 CRAN Task View on Optimization 以获得更多包
请注意,我的建议都假设您具有确定性函数(即没有随机噪声)。对于不是严格确定性(或太大)的函数,您需要使用模拟退火或遗传算法等算法。但是CRAN 任务视图应该有你需要的。
你的函数是连续可微的吗?您可能可以使用 optim,无论是用户提供的导数还是数值近似的导数。