问题标签 [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.
python - 调用 fmin_l_bfgs_b 时出现 ValueError
我正在通过我的fmin
这种方式:
这看起来很标准:objective 返回一个标量,objective gradient 返回一个ndarray
size 2n+1
。
我收到以下错误:
知道如何摆脱它吗?
python - Optimize.Minimize 将 2 个参数传递给 1 个参数的函数
我有一个问题optimize.minimize
。我将粘贴代码并在之后进行解释。
有这个函数,我试图检查 p 和 q 的一些值(在 for 循环中定义),对于每一个,我将有一个更简单的函数,它只是固定 p 和 q 的 C 函数。然后,我将最小化这个更简单的 1 参数函数,其约束条件是函数 C(l) 必须大于或等于 2。(最终,我将添加将 l 的最小值附加到列表的行lMinVal
)
我的问题是,当我运行它时,我收到以下错误:
python - scipy.optimize.minimize 返回 [inf]
我正在尝试调用scipy.optimize.minimize
以最小化函数poissonNegLogLikelihood
,该函数定义如下:
这个函数工作正常,但是当我尝试将它用作它的输入时,scipy.optimize.minimize
它返回 [inf]。这就是我传递它的方式:
我是否使用了scipy.optimize.minimize
错误的功能?
python - Scipy.Optimize.Minimize 效率低下?双重调用成本/梯度函数
我对使用 SciPy 比较陌生;我目前正在使用它来最小化多层感知器模型的成本函数。我不能使用 scikit-learn,因为我需要能够设置系数(它们在 MLPClassifer 中是只读的)并向任何和所有参数添加随机排列和噪声。我还没有完成实现,但是我对最小化函数所需的参数感到困惑。
例如,我编写了一个函数来计算函数的“成本”(最小化能量),它同时计算梯度。这没什么特别的,因为它是常见的做法。然而,当调用 scipy.optimize.minimize 时,它要求两个不同的函数:一个返回要最小化的标量(即,在我的例子中的成本),另一个计算当前状态的梯度。例子:
除非我弄错了,否则它似乎需要调用我的函数两次,每次调用都需要指定返回成本或梯度,如下所示:
这不是浪费计算时间吗?我的数据集将有超过 100 万个样本和 10 个特征,因此减少冗余计算将是首选,因为我将为我的项目训练和重新训练这个东西数万次。
另一个混淆点是 args 输入。参数是否像这样传递:
或像这样:
提前致谢!
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。
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 实现相同的解决方案。谢谢
我的代码如下所示:
python - 如何使用 optimize.minimize() 编码剂量反应 (4PL) 曲线拟合
我想使用数据集优化剂量反应曲线(4 参数逻辑)。我需要使用 Powell 算法,因此,我必须使用 optimize.minimize() 而不是 curve_fit 或最小二乘。我写了以下代码:
从理论上讲,这最小化了实验和理论数据集的 sse,该数据集迭代了最初使用 Powell 算法输入的 4 个参数。实际上,它不起作用:它开始了,最后一个错误,在一个相当长的列表中,是
关于如何编码的任何想法?
python - 如何最大化收入 - Python
我有一个很大的 df,由每小时股价组成。我希望找到最佳的买入价和卖出价以最大化收益(收入 - 成本)。我不知道最大化买入/卖出价格是多少,因此我最初的猜测是在黑暗中疯狂地刺伤。
我尝试使用 Scipy 的“最小化”和“盆地跳跃”。当我运行脚本时,我似乎被困在当地的井中,结果几乎与我最初的猜测不同。
关于如何解决这个问题的任何想法?有没有更好的方法来编写代码,或者更好的方法来使用。
下面的示例代码
python - 如何在 Python 中解决非线性规划问题
我想解决一个非线性规划问题。目标函数是非线性的,约束是线性的。给定一个向量α(dim is n*1)
,我想找到另一个向量θ( dim also is n*1)
使 cos(α, θ) 最小化。同时θ
也有一些限制。约束是A.dot(θ) < 0
(零是列向量),dim 是m*n
,m < n
。
问题是,Given α(dim is n*1)
,暗淡的是m*n
,m < n
我尝试使用 scipy.optimize.minimize 来解决问题并输入约束。喜欢
方法的结果取决于初始值。我不知道如何得到一个合理的初始值,所以我设置的初始值是随机的。正如预期的那样,该方法给出了错误的结果,结果不符合约束条件。
python - 使用 scipy.optimize 时如何评估执行时间?
我正在编写一个minimize()
使用scipy.optimize
. 该脚本运行良好,但速度相对较慢,我正在尝试弄清楚如何(a)找出时间花在哪里),以便我可以(b)加快速度。
我当前的“慢”基准我有一个实体数据集,其中每个实体包含约 5000 个样本(即,我需要minimize()
5000 次/实体。我大约有 2000 个实体。我当前的运行时间在每个实体 35-45 秒之间变化,所以我正在查看 80k 秒(或 22.2 小时)的总运行时间。如果它只是一次性的,这会很好,但这需要测试多个模型等。所以我需要获得运行时间的方式下。
脚本的主要部分如下:
目前我正在for
循环级别记录运行时间。然而,这并不能告诉我我的瓶颈可能在哪里。是在mineral_inversion()
功能层面,还是在minimize()
功能本身,等等。
问题:(1)我如何巧妙地记录执行时间以确定是否可以加快速度?(2)如果这实际上是“慢”或者我只是不合理并且有很多样本需要迭代,那么什么是公平的陈述方式?(3) 我是否有任何明显的不良做法/速度陷阱?