Python 中的凸优化

Convex Optimization in Python

我最近对足球统计数据产生了兴趣。现在我想在 Python 3.5 (paper-link).

中实现著名的 Dixon-Coles 模型

基本问题是,从论文中描述的模型得出一个具有众多参数的似然函数,需要最大化它。

例如:一个 Bundesliga 赛季的似然函数将产生 37 个参数。当然,我会最小化相应的负对数似然函数。我知道这个 log 函数是严格的 convex 所以优化应该不会太难。我还包括了分析梯度,但是随着参数数量超过 ~10,来自 SciPy-Package 的优化方法失败了 (scipy.optimize.minimize()).

我的问题: 还有哪些其他优化技术最适用于涉及约 40 个独立参数的优化问题?

对其他方法的一些提示会很棒!

您可以使用同时适用于凸空间和非凸空间的元启发式算法。其中最著名的可能是 Genetic algorithm。它也很容易实现,概念也很简单。遗传算法的美妙之处在于您可以调整它来解决大多数优化问题。

您可能想看看像 https://cvxopt.org/ or https://www.cvxpy.org/ 这样的凸优化包。它基于 Python,因此易于使用!