问题标签 [scipy-optimize-minimize]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
89 浏览

python - 调用 fmin_l_bfgs_b 时出现 ValueError

我正在通过我的fmin这种方式:

这看起来很标准:objective 返回一个标量,objective gradient 返回一个ndarraysize 2n+1

我收到以下错误:

知道如何摆脱它吗?

0 投票
1 回答
359 浏览

python - Optimize.Minimize 将 2 个参数传递给 1 个参数的函数

我有一个问题optimize.minimize。我将粘贴代码并在之后进行解释。

有这个函数3vars,我试图检查 p 和 q 的一些值(在 for 循环中定义),对于每一个,我将有一个更简单的函数,它只是固定 p 和 q 的 C 函数。然后,我将最小化这个更简单的 1 参数函数,其约束条件是函数 C(l) 必须大于或等于 2。(最终,我将添加将 l 的最小值附加到列表的行lMinVal

我的问题是,当我运行它时,我收到以下错误:

0 投票
1 回答
259 浏览

python - scipy.optimize.minimize 返回 [inf]

我正在尝试调用scipy.optimize.minimize以最小化函数poissonNegLogLikelihood,该函数定义如下:

这个函数工作正常,但是当我尝试将它用作它的输入时,scipy.optimize.minimize它返回 [inf]。这就是我传递它的方式:

我是否使用了scipy.optimize.minimize错误的功能?

0 投票
1 回答
373 浏览

python - Scipy.Optimize.Minimize 效率低下?双重调用成本/梯度函数

我对使用 SciPy 比较陌生;我目前正在使用它来最小化多层感知器模型的成本函数。我不能使用 scikit-learn,因为我需要能够设置系数(它们在 MLPClassifer 中是只读的)并向任何和所有参数添加随机排列和噪声。我还没有完成实现,但是我对最小化函数所需的参数感到困惑。

例如,我编写了一个函数来计算函数的“成本”(最小化能量),它同时计算梯度。这没什么特别的,因为它是常见的做法。然而,当调用 scipy.optimize.minimize 时,它​​要求两个不同的函数:一个返回要最小化的标量(即,在我的例子中的成本),另一个计算当前状态的梯度。例子:

除非我弄错了,否则它似乎需要调用我的函数两次,每次调用都需要指定返回成本或梯度,如下所示:

这不是浪费计算时间吗?我的数据集将有超过 100 万个样本和 10 个特征,因此减少冗余计算将是首选,因为我将为我的项目训练和重新训练这个东西数万次。

另一个混淆点是 args 输入。参数是否像这样传递:

或像这样:

提前致谢!

0 投票
0 回答
256 浏览

python-3.x - 是否可以将标量值与 Pandas 系列一起传递给 Pandas UDF 函数

我正在尝试scipy.optimize.minimize对两列 pyspark 数据框使用函数。

在将x0参数作为数组传递给 Pandas UDF 函数时,我收到以下错误:

这是我试图最小化的功能

这是我的 neg_bin 函数:

这些是我的参数:

这是我试图调用scipy.optimize.minimize函数的地方。

我是 PySpark 的新手,我可以在 Pandas 中执行此操作,但现在我有一个庞大的数据集,而 Pandas 需要花费大量时间来处理它。

以下是预期的输出格式:这是我在 Pandas 中得到的输出

我无法将 theta 值传递给 neg_bin 函数。因为 neg_bin 函数只需要 pandas.Series 作为输入。如果可能的话,我正在寻找一种解决方法,将 theta 值作为标量连同 pandas.Series 作为输入发送到 neg_bin 函数。

任何帮助表示赞赏。TIA。

0 投票
0 回答
269 浏览

python - Scipy 像 Excel Solver 一样最小化

我有从 Python 中的 excel 读取的大数据表,我在其中执行一些计算,我的数据框看起来像这样,但我的真实表更大更复杂,但逻辑保持不变: 在此处输入图像描述

与:My_cal_spread=set1+set2 和 Errors = abs(My_cal_spread - spread)

我的目标是使用 Scipy Minimize 找到可以在每一行中使用的唯一相同的(Set1 和 Set 2)组合,因此 My_cal_spread 通过优化找到可能的最小错误总和来尽可能接近 Spread。

这是我在使用 excel 求解器时得到的解决方案,我正在寻找使用 Scipy 实现相同的解决方案。谢谢

我的代码如下所示:

在此处输入图像描述

0 投票
1 回答
1202 浏览

python - 如何使用 optimize.minimize() 编码剂量反应 (4PL) 曲线拟合

我想使用数据集优化剂量反应曲线(4 参数逻辑)。我需要使用 Powell 算法,因此,我必须使用 optimize.minimize() 而不是 curve_fit 或最小二乘。我写了以下代码:

从理论上讲,这最小化了实验和理论数据集的 sse,该数据集迭代了最初使用 Powell 算法输入的 4 个参数。实际上,它不起作用:它开始了,最后一个错误,在一个相当长的列表中,是

关于如何编码的任何想法?

0 投票
1 回答
910 浏览

python - 如何最大化收入 - Python

我有一个很大的 df,由每小时股价组成。我希望找到最佳的买入价和卖出价以最大化收益(收入 - 成本)。我不知道最大化买入/卖出价格是多少,因此我最初的猜测是在黑暗中疯狂地刺伤。

我尝试使用 Scipy 的“最小化”和“盆地跳跃”。当我运行脚本时,我似乎被困在当地的井中,结果几乎与我最初的猜测不同。

关于如何解决这个问题的任何想法?有没有更好的方法来编写代码,或者更好的方法来使用。

下面的示例代码

0 投票
1 回答
917 浏览

python - 如何在 Python 中解决非线性规划问题

我想解决一个非线性规划问题。目标函数是非线性的,约束是线性的。给定一个向量α(dim is n*1),我想找到另一个向量θ( dim also is n*1) 使 cos(α, θ) 最小化。同时θ也有一些限制。约束是A.dot(θ) < 0(零是列向量),dim 是m*nm < n

问题是,Given α(dim is n*1),暗淡的是m*nm < n

我尝试使用 scipy.optimize.minimize 来解决问题并输入约束。喜欢

方法的结果取决于初始值。我不知道如何得到一个合理的初始值,所以我设置的初始值是随机的。正如预期的那样,该方法给出了错误的结果,结果不符合约束条件。

0 投票
1 回答
272 浏览

python - 使用 scipy.optimize 时如何评估执行时间?

我正在编写一个minimize()使用scipy.optimize. 该脚本运行良好,但速度相对较慢,我正在尝试弄清楚如何(a)找出时间花在哪里),以便我可以(b)加快速度。

我当前的“慢”基准我有一个实体数据集,其中每个实体包含约 5000 个样本(即,我需要minimize()5000 次/实体。我大约有 2000 个实体。我当前的运行时间在每个实体 35-45 秒之间变化,所以我正在查看 80k 秒(或 22.2 小时)的总运行时间。如果它只是一次性的,这会很好,但这需要测试多个模型等。所以我需要获得运行时间的方式下。

脚本的主要部分如下:

目前我正在for循环级别记录运行时间。然而,这并不能告诉我我的瓶颈可能在哪里。是在mineral_inversion()功能层面,还是在minimize()功能本身,等等。

问题:(1)我如何巧妙地记录执行时间以确定是否可以加快速度?(2)如果这实际上是“慢”或者我只是不合理并且有很多样本需要迭代,那么什么是公平的陈述方式?(3) 我是否有任何明显的不良做法/速度陷阱?