使用nloptr查找N个最佳解决方案

毫米441

在R中使用nloptr,但是,由于要获得最佳解决方案,我想给我的模型更多的自由,并避免过度拟合。我已经在这个问题的前面描述了我的问题

nloptr(x0, eval_f, eval_grad_f = NULL, lb = NULL, ub = NULL, 
       eval_g_ineq = NULL, eval_jac_g_ineq = NULL, eval_g_eq = NULL, 
       eval_jac_g_eq = NULL, opts = list(), ... )

基本上我要解决一个非线性问题。我有一个最小化函数和一些非线性约束。但我不想使用发现的最佳解决方案,因为它过度适合示例数据并为我提供了极高的价值。因此,我想找到N个最佳解决方案,然后选择我想要的解决方案。

所以现在我想知道是否有一种方法可以找到nloptr在迭代过程中找到的N个最佳解决方案除了nloptr之外,还有其他方法可以这样做吗?

什么

这实际上不是答案,而是长篇评论,希望对您有所帮助。

我同意@tonytonov的观点,您应该更好地定义“次优”和您的一般需求。无论如何,要获得N个彼此之间不很接近的不同解决方案,我将迭代运行nloptr,每次使用略有不同的目标函数,每次都增加接近先前解决方案的代价。这是一个例子:

sols = list()
evalf= list(eval_f)
for (i in 1:N) {
    sols[i] = nloptr(x0,evalf[[i]],...)
    # now creating a new evaluation function which adds a log(distance) penalty to the
    # last solution
    evalf[[i+1]] = function(x) {evalf[[i]](x)-log(sum((x-sols[i]$solution)^2))}
}

您当然可以想到一个不同的惩罚,其想法是对非常接近现有解决方案的地方增加一个很大的惩罚,但是一旦您与之相距较远(您应该知道,足够远意味着什么-这是特定于上下文的),惩罚相对平稳,因此不会影响原始的最低分数。您当然应该检查最后一个解决方案是否存在,并且可能将起点(x0)从一次迭代更改为另一次迭代,但是我认为您已经明白了。

更一般而言,当您尝试避免过度拟合时,我会首先考虑在评估函数中添加一个惩罚。例如,回归分析中过度拟合的标志是系数的大小,因此通常在确定回归估计时尝试不最小化误差的平方根(典型的OLS方法),而是最小化误差的平方根。系数之和(以某种方式进行归一化),这会产生对小系数的偏爱,从而降低了过拟合的可能性。

对于您的特定问题,我知之甚少,但是也许您可以提出一些“惩罚”功能,当最小化该功能时,它将减少过拟合。

如果您的eval_f依赖于数据,另一种方法是使用相同的评估函数,但依赖于数据的引导子样本。每次您获得不同的最小值(由于样本不同)。您将获得N个这样的解决方案,您可以将它们平均化,或者执行任何您想生成非过度拟合解决方案的操作(现在,该解决方案不会过度拟合数据,因为每个解决方案都基于数据的不同部分)。

希望对您有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用nloptr查找N个最佳解决方案

来自分类Dev

“名人”算法的最佳解决方案

来自分类Dev

WebSocket:后端的最佳解决方案

来自分类Dev

尝试最佳解决方案?

来自分类Dev

字谜检查的最佳解决方案?

来自分类Dev

背包最佳解决方案(蛮力)

来自分类Dev

寻找最佳解决方案

来自分类Dev

忽略maxLength的最佳解决方案

来自分类Dev

级联IF语句-最佳解决方案

来自分类Dev

隐藏丑陋的Gwt Crawlable Url(一个使用hashbang)的最佳解决方案是什么?

来自分类Dev

隐藏丑陋的Gwt Crawlable Url(一个使用hashbang)的最佳解决方案是什么?

来自分类Dev

优雅/最佳解决方案,从迭代中获取最后一个元素

来自分类Dev

ASP.NET MVC n层体系结构-最佳解决方案

来自分类Dev

XSRF / CSRF安全REST呼叫的最佳解决方案?

来自分类Dev

jQuery“窗帘”功能-最佳解决方案?

来自分类Dev

托管搜寻器的最佳解决方案?

来自分类Dev

网页中水平对齐的最佳解决方案?

来自分类Dev

最大单笔销售利润算法的最佳解决方案

来自分类Dev

物体可以被处置多次-最佳解决方案

来自分类Dev

爱丽丝·鲍勃硬币的最佳解决方案

来自分类Dev

在iCloud上保存游戏进度:最佳解决方案?

来自分类Dev

在HaxeFlixel中编码资产的最佳解决方案

来自分类Dev

多线程网络刮板的最佳解决方案?

来自分类Dev

插入时需要mysql事件的最佳解决方案?

来自分类Dev

Android REST客户端:最佳解决方案?

来自分类Dev

找出最佳解决方案的数据结构

来自分类Dev

iOS 9解析JSON的最佳解决方案

来自分类Dev

控制访问StrongLoop中模型的最佳解决方案

来自分类Dev

解锁网络音频的最佳解决方案

Related 相关文章

热门标签

归档