问题标签 [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.
matlab - 提供的目标函数必须返回一个标量值
我正在尝试在 Matlab 中编写 ML 算法。这些是我的不同功能:
sigmoid.m:
成本函数.m
ex2.m (这是我项目的主文件,我把相关行放在我收到此错误消息的位置)
错误信息:
使用 fminunc 时出错(第 348 行) 提供的目标函数必须返回一个标量值。
ex2 中的错误(第 97 行) fminunc(@(t)(costFunction(t, X, y)), initial_theta, options);
我不知道上面有没有足够的信息?如果没有,请告诉我添加额外信息。
python - pyomo 的准确性;客观规则不返回预期值
使用 pyomo 和 glpk 求解器我定义了以下客观规则:
如果我知道在找到最小值后比较输出,我会得到不同的结果:
(mt 和 t_t 是代表一年中小时的范围集)这是大约 3% 的误差,任何想法可能来自哪里?如果我需要选择一个值,哪个值是正确的。
提前致谢!
python-3.x - 如何在回归问题中使用具有 MultiOutputRegressor 的目标函数
我正在研究时间序列回归问题,预测未来 5 天的股价,我认为这是多个连续输出(多元回归)。
因此,我MultiOutputRegressor
在 sklearn 中使用来做我想做的事。
但是未来前三天的预测值比未来的第四天和第五天更重要。
因此,我想用权重来惩罚前三天,有人知道如何用客户目标函数解决这个问题吗?或者有其他方法来解决这个问题
数据和代码如下
r - XGBoost 自定义损失函数无法重现二元:逻辑目标
我在 RStudio 工作,希望为 XGBoost 开发一个自定义目标函数。为了确保我了解该过程的工作原理,我尝试编写一个目标函数来重现“二元:逻辑”目标。但是,我的自定义目标函数会产生明显不同的结果(通常更糟)。
根据XGBoost github repo 上的示例,我的自定义目标函数如下所示:
根据这篇中型博客文章,这似乎与 XGBoost 二进制目标中实现的内容相匹配。
使用一些简单的测试数据,我对内置目标的最终训练 rmse 为 ~0.468,使用我的自定义目标为 ~0.72。
下面的代码可用于生成测试数据并重现问题。
有人可以解释为什么我的代码不能重现目标“二进制:逻辑”的行为吗?我正在使用 XGBoost R-Package v0.90.0.2。
pca - 加权矩阵分解
所以我得到了这个奇怪的函数,它可以被表述为目标函数,如附图 所示。我知道我不能使用任何 L2 低秩矩阵分解(LRMF)算法来解决这个问题,因为这被认为是加权低秩矩阵分解(LRMF)。我看过迭代重新加权最小二乘和加权主成分分析,但不幸的是它们仅在 matlab 中可用。有人知道我可以用来解决这个问题的任何python函数吗?我的项目不需要我编写 L2 LRMF 算法,只需要我使用任何现有函数来解决它。任何帮助都是理想的。
python - 如何在 or-tools 中定义复杂的目标函数?
我想知道如何使用或工具(如果可能的话)定义一个复杂的目标函数。
下面的基本示例显示了如何在 python 中使用 Or-tools 解决基本的线性问题:
在这个非常基本的例子中,目标函数是Minimize(0.5*x + 2*y)
。例如,获得变量的最小二乘Minimize(x^2 + y^2)
或绝对值的语法是什么Minimize(abs(x) + y)
?
是否可以定义一个子函数并将其调用到目标函数中?还是我应该采取另一种方式?
提前谢谢了,
罗曼
r - 将 matlab 目标函数转换为 R
我想将一个 matlab 函数翻译成 R 代码。这是我最困惑的代码部分:
1)第一个问题是第 4 行oldo = obj(end)
。有人可以向我解释这种语法吗?(我认为它会结束 while 循环?)这也在第 9 行。
2) 第 7 行:[v,tmp] = eigs(Pv*double(ttv(Xhat,u,3))*Pv,1);
。我不明白是什么[v, tmp]
。“v”是先前定义的变量,但 tmp 不是。有人可以解释这个数据结构吗?
3) 第 8 行:obj = [obj (Pv*v)'*double(ttv(Xhat,Pv*v,2))*(Pu*u)];
。我对括号内发生的操作感到困惑 - 例如,“obj”和“(Pv * v)......”之间有一个空格但没有运算符。括号在这里充当某种运算符吗?
仅供参考,ttv() 是 Tensor Toolbox 中的一个函数。如果有人可以帮助解决这些问题中的任何一个,那将对我有很大帮助。我知道这是一个模糊/多部分的问题,但我想如果有人可以回答其中一个问题,他们可以回答所有问题。此外,如果您只是解释这些代码行在 matlab 中的作用而不将它们翻译成 R,那也将非常有帮助。完整代码在这里:https ://github.com/zhengwu/TensorNetwork_PCA/blob/master/hopca_popNet_new.m
谢谢您的帮助!
c++ - 线性优化目标函数中的绝对值
我正在尝试找到以下表达式的解决方案
目标函数:
最小化(| x - c0 | + | y - c1 |)
约束:
其中 c0, c1, A, B 是正常数
在 http://lpsolve.sourceforge.net/5.1/absolute.htm中给出的转换之后
我将表达式改写为
约束:
目标函数:
但是,我无法实现这一点。我尝试了以下代码段
我收到错误,E0206 16:41:08.889048 80935 linear_solver.cc:1577] 不存在解决方案。MPSolverInterface::result_status_ = MPSOLVER_INFEASIBLE
我的用例总是产生可行的解决方案(我试图找到点和线之间的最小曼哈顿距离)。
我对使用 GOOGLE-OR 工具非常陌生。请提出我可能忽略的任何更简单的解决方案任何帮助将不胜感激
谢谢,拉姆
python - 从 scipy.optimize 到 nlopt 包使用的优化方法
我目前有一个目标函数的黑匣子。它已成功scipy.optimize
用作'status = op.basinhopping(obj,sp,...)',但是,当我尝试使用相同的obj到NLOPT包时,它会给出一条消息
我想 obj forscipy.optimize
有两个参数,一个是函数本身,另一个是每个维度的微分,而 NLOPT 方法中使用的 obj 只需要函数本身。如果我是对的,我应该如何修改 obj 以便它可以在 NLOPT 中使用?我使用 NLOPT 的代码
matrix - JuMP目标函数中的矩阵向量积,其中矩阵是一个变量
我正在使用 JuMP 在 Julia 中编写优化程序。我的 Julia 版本是 1.3.1,JuMP 版本是 0.21.2。
我的变量之一是矩阵,在我的例子中这是一个方便的结构。
在目标函数中,我将矩阵乘以(参数)向量,然后将结果条目的条目相加。我想这样写:
这相当于
当我用数字矩阵替换变量矩阵时,这运行良好test
。但是,我使用可变矩阵 GiH 得到错误
到底是怎么回事?似乎没有为跳转变量矩阵定义矩阵乘法?
我知道我可以用嵌套替换这个矩阵乘法,sum(... for ...)
但我想知道是否有可能以不同的方式进行。