Python中的参数优化

2024-05-29 09:34:07 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个Python callable,它返回一个适应度度量(0.0=horry,0.5=ok,1.0=perfect)及其参数的描述(type=bool | int | nominal,min,max),那么参数优化器的哪些健壮实现可以找到尽可能高的适应度度量值的参数组合?我不是在寻找一个完全有保证的全局最优解。一个近似值就可以了。在

我看到scipy的optimize模块引用了很多,但也看到了scikitlearn的gridsearch。这两者的实际区别是什么?还有其他选择吗?在


Tags: 参数度量typeokscipymin全局max
1条回答
网友
1楼 · 发布于 2024-05-29 09:34:07

给定一个参数空间和寻找最优值的任务,gridsearch可能是最容易做到的事情:离散化参数空间,然后用暴力检查所有组合。返回产生最佳结果的参数组合。在

这是可行的,但正如您所想象的,这并不能很好地扩展。对于高维优化问题,这根本不可行。在

改进的策略取决于你有什么额外的信息。在最佳情况下,你优化了一个光滑的可微函数。在这种情况下,可以使用数值优化。在

在数值优化程序中,你可以利用函数的梯度总是向上的事实。所以如果你想增加函数值,只要梯度不为零,只要梯度不为零,你就会一直提高。在

这个强大的概念在scipy的大多数例程中都得到了利用。通过这种方式,您可以利用获得的有关当前位置附近的附加信息来优化高维函数。在

因此,如果没有光滑和微分函数,scipy的数值例程就不能使用。在

注意,利用当前参数向量附近的信息也可以用于非平滑优化。基本上你会做同样的事情:检查你当前估计值的一个窗口,然后在窗口中找到一个更好的值来改进。在

相关问题 更多 >

    热门问题