问题标签 [objective-function]

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 投票
1 回答
27 浏览

python - 当我使用 scipy.optimize.minimize() 最小化目标函数时,为什么我的目标函数的矩阵参数会发生变化?

目标函数 我正在尝试进行时空自动回归(STAR)。下面的代码基本上定义了我需要最小化的上述目标函数,其中 Y 是 N×K 矩阵,D 是 N×N 矩阵。

优化出错了,所以只添加了第一个块来检查究竟是哪一部分出错了。我scipy.optimize.minimize( )用来最小化目标函数。

但是,当我运行以下命令时,优化失败并打印出矩阵 D。结果不知何故,Y 已分配给 D,因此 D 不再是 N×N 矩阵。

我觉得很混乱。为什么D完全改变了?这是否发生在其他人身上?有人帮我吗?

0 投票
1 回答
238 浏览

python - 使用已知目标函数实现梯度下降

我有一篇论文中的目标函数,我想用梯度下降来最小化。我还没有“从头开始”做这件事,并且想要一些关于如何手动编码的建议。目标函数为:

T(L) = tr(XT L^s X) - beta * ||L||。

其中L是N x N矩阵要估计的正半定矩阵,X是N x M矩阵,beta是正则化常数,XT = X转置,||.|| 是弗罗贝尼乌斯范数。

此外,L^s 是矩阵指数,其中 L^s = F Λ^s FT,其中 F 是 L 的特征向量的矩阵,Λ 是 L 的特征值的对角矩阵。

目标函数的导数是:

dT/dL = sum_{从 r = 0 到 r = s - 1} L^r (XX.T) L^(sr-1) - 2 * beta * L

我已经完成了非常基本的梯度下降问题(例如矩阵分解),其中优化了矩阵的每个元素,或者使用包/库。这种问题我习惯了比较复杂,我希望你们中的一些对这种事情更有经验的人可以帮助我。

非常感谢任何一般性建议以及如何在 python 或 R 中编写代码的具体建议。

这是具有此功能的论文的链接: https ://journals.plos.org/plosone/article?id=10.1371/journal.pone.0128136#sec016

非常感谢您的帮助!

保罗

0 投票
1 回答
480 浏览

python - XGBoost 的自定义目标函数,包括外部数据列

我正在使用 XGBoost 进行销售预测。我需要一个自定义目标函数,因为预测值取决于商品的销售价格。我正在努力将销售价格输入到标签和预测旁边的损失函数中。这是我的方法:

超参数调整时出现以下错误:

有谁知道如何在目标函数中使用销售价格?这可能吗?

谢谢!

0 投票
1 回答
90 浏览

minizinc - Minizinc 目标函数用于计划中的差距

我有一个有效的 Miniznic 模型来安排 1 位教授有 n 名学生的个人课程(单节课安排模型的优化问题)。该模型考虑了教授和学生的可用性(硬约束)和时间偏好(目标函数)。

现在,我想扩展模型并优化课程表,以最大限度地减少课程之间的差距。

例子:

在哪里

显然,pin slot 1 不能算作间隙。同样,插槽 9 和 10 也没有间隙。消除所有错误间隙, Schedule最终应该看起来像Real Gaps数组(注意:错误间隙用.; 与不可用相同)。

结果将是一个间隙数组[2, 1, 1, 1, 1](每个间隙显示它持续的插槽数)。然后,基于这样的阵列,人们可以例如制定目标以最小化整体间隙槽。

ruby我能够制定一个算法来做我想要的:

如何在 Minizinc 中制定这样的算法?

谢谢!

0 投票
0 回答
181 浏览

python - 从非线性寻根到多目标优化

为了简化,假设我可以描述一个系统

变量x1x2,

参数p1p2, 和

约束f(x, p) = 0g(x, p) = 0

例如:

f(x1, x2, p1, p2) = x1^2 * p1 + x1^2 * p2 + x2 = 0

g(x1, x2, p1, p2) = x2^2 * p2 + x1 * p1 = 0

现在,假设给定参数p1和的真实值p2,根存在。scipy.optimize但是,在我的情况下,参数的确定方式并不完美,并且像's这样的非线性寻根器fsolve是不成功的。可以将参数作为变量输入并尝试找到根,但是将变量和参数增加一个数量级,就像在我的实际系统中一样,约束变得非常难以遵守。

因此,我一直在寻找可以“解决”我的非线性方程组的 python 优化包。这就是我对优化缺乏理解的障碍。

如果我理解正确,假设我的方程是约束,这意味着必须尊重它们才能使我的设计成功。但是,我已经意识到,鉴于参数(或大量可能的变量)的不完美性,我需要有一个(或多个)目标函数来最小化而不是约束。

描述我的系统的所有方程都具有相同的有效性,所以我认为我不能简单地选择一个或几个方程作为目标函数,其余的仍然作为约束。看起来我需要将所有方程作为目标函数。

因此,我有两个问题:

  1. 我的逻辑是让我的所有方程都作为目标函数有效吗?
  2. 什么 python 包可以让我最小化这些目标函数?

我看过cyipoptcasadipyomoDEAP,但我有点迷茫。我认为一旦我的系统模型得到更好的定义,我就会确切地知道要寻找什么。但是,如果可以提供我的简单示例的代码,我将不胜感激。

PS:我的模型现在有 11 个变量和 11*5 个参数(五个系数代表每个变量的 4 次多项式)。如果需要,我还可以在优化包中为变量添加约束。

0 投票
1 回答
91 浏览

python - 纸浆变量的条件

我正在尝试使用 Pulp 解决教授/班级分配问题。下面是我的代码的简化示例。在示例中,每年有 12 个不同的科目(“Maths_1”,代表数学第一年)分配给 3 个不同的组(A、B、C)。共有 36 个班级分配给 9 位教授(每个教授 4 个班级)。我想尽量减少教授必须提供的不同科目的数量。这是:必须为教授分配 4 个类,然后,例如,Maths_1_A、Maths_1_B、Maths_1_C 和 Programming_1A 只涉及两个不同的科目(Maths_1 和 Programming_1),是比 Maths_1_A、Maths_2_A、Physics_2_A、Physics_1_B、Chemistry_3_A 更好的选择4 个不同的科目(Maths_1、Maths_2、Physics_1、Chemistry_3)。

我遇到的问题是定义目标函数。我只能考虑纸浆变量分配的条件:

问题是:如何创建一个目标函数来计算教授分配的不同科目数量?

0 投票
0 回答
219 浏览

r - 如何为序数分类问题自定义 XGBoost 目标函数?

我正在训练一个模型来对具有 10 个级别的序数响应变量进行分类。

我研究了一篇名为“Squared Earth Mover's Distance-based Loss for Training Deep Neural Networks”(https://arxiv.org/pdf/1611.05916.pdf)的论文,我想自定义 XGBoost 目标函数以在“ EMD”。

但是,我不知道如何编写该目标函数。除了使用multi:softmaxor multi:softprob,任何人都可以帮我编写一个满足 EMD 的定制目标函数吗?

0 投票
1 回答
178 浏览

python - 指数函数的 SCIP 优化

我在对指数方程求和并将其用作目标函数时遇到问题。

我还尝试将指数方程写成约束,因为我认为这可能是解决此问题的另一种方法,但这对我也不起作用。

对此的任何帮助将不胜感激。

此代码发生的错误是:

我的理解是目标函数的格式应该是(这是我打印 exp_power 得到的结果):

但是,一旦添加指数项 (w),格式变为:

此外,当添加 quicksum[w] 时,格式变为:

目的是最小化 \sum_{r=1}^N W_r

其中 \W_r = exp(population_dict[r]*sum_{s∈S} d_r,s * y_r,s) ∀r ∈ R

0 投票
1 回答
67 浏览

cplex - Cplex是否可以像这样编写目标函数

我有一个分数的二维矩阵作为参数。我有 nxm 个变量 x[i,j],这些变量可以采用预定范围内的整数值。我需要最大化这样的东西: 期望的目标函数

其中 score 是矩阵。是否可以定义这样的目标函数?

0 投票
1 回答
81 浏览

java - Gurobi 中一个目标函数的两个表达式

使用 Gurobi (Java),是否可以为一个目标函数编写两个表达式,以便随后仅优化目标函数?

更准确地说:我有以下目标函数:

f = -(ab)

a 和 b 都包含我的优化变量。由于这些条款不是很简单,我正在考虑将两者分开。然而,它们不是单独优化的,而只是目标函数(以及差异)被最小化。因此,在我看来,多重目标的可能性不复存在,但我也可能是错的。也许有人可以帮助我。

非常感谢