问题标签 [cvxpy]
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 - scipy.optimize.minimize 无法收敛具有约束的矩阵输入
(第一个问题,如果在某种程度上不好,将进行编辑。在发布之前进行了研究)
我想预测 x*C=y (x 和 y 是数据集,C 是一个矩阵),具有 C 的行总和为 1 并且其元素介于 0 和 1 之间的约束。
因为受约束的是行,而不是列,所以我不能只使用线性回归而必须写下误差函数。我在 Matlab 中成功地做到了这一点,所以我知道它不在数据或方法中,而可能在我的代码中。
我的代码(如下)给出了这两个错误之一(取决于随机初始猜测,我假设):
任何帮助将不胜感激。我是 Python 新手,在这方面花了很多时间。
python - matlab CVX问题到python cvxpy
这是我的 Matlab CVX
我在 Python 环境中的 cvxpy 中尝试了这个:
但是约束变量有问题。也许 numpy 函数不起作用。似乎只有 cvxpy 语法有效。但是,我在 cvxpy 语法中找不到矩阵乘法。我怎样才能做到这一点?
python-3.x - 为什么 Visual Studio 2017 在安装 cvxpy 0.4.11 时返回错误?
我已经在启用 python 的情况下在线安装了 Microsoft Visual Studio 2017。在Python Environments > Packages
我搜索下cvxpy
,它建议安装"pip install cvxpy" from PyPI
. 但是当我点击它时,进程返回一个错误说:error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit status 2
。
该错误是什么,我该如何解决?
python - 'sum_entries / axis' 相关错误
我是 cvxpy 的新手,非常感谢您对以下问题的帮助。我写了以下简单的优化代码:
不幸的是,当我运行代码时,它会产生以下错误:
代码有什么问题以及纠正它的最佳方法是什么?先感谢您!
python - cvxpy 解决属性返回无
我写了以下代码
我试图了解如何使用 cvxpy 来解决矩阵完成问题。
我有一个矩阵 M,缺少对应于mask
矩阵的条目。它被最小化到 S 的核范数,并且约束对应于 S 和 M 的mask
-True
条目的匹配,在一定的容差内。
有人可以帮我找出我的代码或逻辑中的错误吗?我无法找到正确使用solve()
. 我试图通过S.value
.
最小S ||S|| * st S=M 对于已知条目
python - 如何在 MS Windows 上安装 CVXPY?
我正在尝试在 Windows 上安装 CVXPY。我已经安装了 Anaconda,所以我正在按照这些步骤操作。我将 anaconda 更新到了最新版本,并检查了我的计算机上是否已经安装了适用于 Python 的 Visual Studio C++ 编译器。之后,我从 Anaconda 安装 SCS,运行建议的命令:
这返回了一条错误消息:
我不知道 blaze 包是什么,我猜是 anaconda 安装的东西,所以我从 pip 中卸载了它,然后安装了 scs(我这样说是为了以防万一它很重要,现在真正的问题来了)
安装 SCS 后,我安装了 CVXPY:
显然在安装过程中没有出现错误消息,但是我运行了nosetest:
这返回了 27 条我不知道如何解决的错误消息。¿ 其他人有这个问题,可以给我一些提示吗?
(我在这里粘贴了一些我收到的错误消息)。
optimization - 在 cvxpy 中定义软约束
我正在使用 cvxpy 进行简单的投资组合优化。
我实现了以下虚拟代码
我限制完全投资,只做多,营业额<= 75%。但是,我想将营业额用作“软”约束,因为求解器将尽可能少地使用但尽可能多地使用,目前求解器将几乎完全最大化营业额。
我基本上想要这样的东西,它是凸的并且不违反 DCP 规则
我认为这应该设置一个最小阈值(此处为 5%),然后使用尽可能多的营业额,直到找到可行的解决方案。
我尝试将我的目标函数重写为
其中惩罚是例如2,我的约束对象仍然看起来像
我从未使用过软约束,任何解释都将不胜感激。
编辑:中间解决方案
上面的代码将强制增加 item[0] 的权重,这里是 +20%,以保持 sum() =1 约束,必须通过 -20% 的减少来抵消,因此我知道它需要至少需要 40% 的营业额才能做到这一点,如果使用 penalized = False 运行代码,则必须对 <= 0.4 进行硬编码,任何小于该值的代码都会失败。penalized = True 案例将找到 40% 的最低要求营业额并解决优化问题。我还没有弄清楚如何在宽松的情况下设置最小阈值,即至少设置 45%(如果需要,可以设置更多)。
我在第 37 页的第 4.6 章中找到了有关该问题的一些解释。
python - 条件约束
cvxpy 有没有办法有条件约束,我正在研究一个像这样的简单凸投资组合优化问题。
我正在尝试引入一个仅适用于某些场景的约束
在这个 python 伪代码中,我只想控制正的权重变化。
我查看了 cvxpy 函数,但似乎没有什么能做到这一点。
python - CVXPY 表达式没有给出预期的结果
我正在使用 CVXPY(1.0 版)。我不明白是什么导致了ZERO
表达式和NONNEGATIVE
表达式之间的差异,如以下代码所示: