标签: quadprog

如何使用Matlab的quadprog实现软边界SVM模型?

假设我们都给出了训练数据集{y?, x?},对i = 1, ..., n,其中y?既可以是-11并且x?例如可以是二维或三维点.

通常,当输入点可线性分离时,SVM模型可以如下定义

min 1/2*||w||²
w,b
Run Code Online (Sandbox Code Playgroud)

受限制(for i = 1, ..., n)

y?*(w*x? - b) >= 1
Run Code Online (Sandbox Code Playgroud)

这通常被称为硬边界 SVM模型,因此是一个约束最小化问题,其中未知数是wb.我们也可以1/2在函数中省略最小化,因为它只是一个常数.

现在,关于Matlab 状态的文档quadprog

x = quadprog(H, f, A, b)最小化1/2*x'*H*x + f'*x受限制A*x ? b.A是双打矩阵,是双打b的向量.

我们可以使用quadprog函数实现硬边缘SVM模型,以获得权重向量w,如下所示

  • H 成为一个单位矩阵.
  • f' 变成零点矩阵. …

matlab machine-learning svm quadprog

7
推荐指数
1
解决办法
1万
查看次数

Docker 容器:与其他主机的 UDP 通信

我正在编写一个 python 应用程序,该应用程序将 UDP 消息连续发送到具有其他主机和固定 IP 的预定义网络。我编写了 python 应用程序并对其进行了docker化。该应用程序在 docker 中运行良好,没有问题。

不幸的是,我无法将 UDP 消息从我的 docker 发送到主机,因此它们将被发送到网络中的其他主机。接收消息也是如此。现在我不知道如何设置我的 docker,所以它从网络中具有固定 IP 地址的主机接收 UDP 消息。

我尝试使用 docker 网络设置我的 docker 网络,--net host并将所有 UDP 消息从我的 docker 容器通过 localhost 发送到我的主机。这也很好用。我错过了可以将消息发送到“外部世界”的链接。我试图对我的问题进行描述。

Docker主机通信问题

我的问题:我必须如何为我的 docker/host 设置网络通信,以便它可以通过 UDP 从网络中的其他主机接收消息?谢谢

python quadprog docker

7
推荐指数
1
解决办法
2260
查看次数

使用 R 中的 Quadprog 包进行投资组合优化中的权重约束

我是 R 和投资组合优化的新手。我正在尝试优化包含 7 种资产的投资组合,使得资产号 3 和 4 的最小权重均为 0.35,并且所有 7 种资产的总和等于 1。以下是我尝试过的代码:

library(quadprog)
dmat <- cov(dr) #dr stores the daily return of the 7 assets and is a timeSeries object
dvec <- colMeans(dr)
c1 <- c(0,0,1,0,0,0,0)
c2 <-  c(0,0,0,1,0,0,0)
amat <- t(rbind(matrix(1, ncol = ncol(dmat)), c1, c2)) #used transpose because earlier when I didn't use the transpose I got an error saying amat and dvec are not compatible
bvec <- matrix(c(1,0.35, 0.35), nrow =3)
meq <- 1
sol <- …
Run Code Online (Sandbox Code Playgroud)

optimization portfolio r quadprog

5
推荐指数
1
解决办法
4684
查看次数

如何使用R包Quadprog解决SVM?

我想知道实现Quadprog解决二次编程的正确方法是什么。

我有以下问题(从互联网上窃听),并且还在查看以下http://cbio.ensmp.fr/~thocking/mines-course/2011-04-01-svm/svm-qp.pdf

在此处输入图片说明

解决此问题的正确方法是什么?如果我遇到上述问题,本教程对解决问题会有用吗? http://www.r-bloggers.com/solving-quadratic-progams-with-rs-quadprog-package/

r quadprog quadratic-programming

4
推荐指数
1
解决办法
2146
查看次数

为什么在quadprog中找不到".QP_qpgen2"?

我最近拂去了一个脚本,它从quadprog包调用solve.QP(我目前有1.5-5版本).现在它生成错误"对象'.QP_qpgen2'未找到".我不明白为什么.

这个对象不是由我创建的,而是由quadprog中的solve.QP函数创建的.在Github Quadprog.R上有代码(第117行):

 res1 <- .Fortran(.QP_qpgen2,
               as.double(Dmat), dvec=as.double(dvec),
               as.integer(n), as.integer(n),
               sol=as.double(sol), lagr=as.double(lagr),
               crval=as.double(crval),
               as.double(Amat), as.double(bvec), as.integer(n),
               as.integer(q), as.integer(meq),
               iact=as.integer(iact), nact=as.integer(nact),
               iter=as.integer(iter), work=as.double(work),
               ierr=as.integer(factorized))
Run Code Online (Sandbox Code Playgroud)

可以从solve.QP 文档中获取的代码生成错误:

##
## Assume we want to minimize: -(0 5 0) %*% b + 1/2 b^T b
## under the constraints:      A^T b >= b0
## with b0 = (-8,2,0)^T
## and      (-4  2  0) 
##      A = (-3  1 -2)
##          ( 0  0  1)
## we can use solve.QP as follows:
## …
Run Code Online (Sandbox Code Playgroud)

r quadprog

4
推荐指数
1
解决办法
892
查看次数

找到最适合目标向量的向量线性组合

我试图找到多个预测的权重,以给出尽可能接近已知目标的结果(例如均方误差)。

以下是一个简化示例,显示了四个数据点的三种不同类型的预测:

target = [1.0, 1.02, 1.01, 1.04]  # all approx 1.0
forecasts = [
    [0.9, 0.91, 0.92, 0.91],  # all approx 0.9
    [1.1, 1.11, 1.13, 1.11],  # all approx 1.1
    [1.21, 1.23, 1.21, 1.23]  # all approx 1.2
]
Run Code Online (Sandbox Code Playgroud)

其中,一个预测值始终约为 0.9,一个预测值始终约为 1.1,一个预测值始终约为 1.2。

我想要一种自动找到[0.5, 0.5, 0.0]三个预测的权重的方法,因为对前两个预测进行平均并忽略第三个预测非常接近目标。理想情况下,权重应限制为非负数且总和为 1。

我需要使用某种形式的线性规划或二次规划来做到这一点。我已经安装了 Python fourprog 库,但我不确定如何将此问题转换为此类求解器所需的形式。有人能指出我正确的方向吗?

python linear-programming quadprog quadratic-programming

3
推荐指数
1
解决办法
1649
查看次数

用 R 解决约束二次规划

我真的很喜欢 R 但有时它真的让我头疼...

我有以下简单的二次最小化问题,可以在 Excel 中立即制定和解决(点击图片放大):

在此处输入图片说明

![在此处输入图片说明

问题本身非常简单:我想(w1^2+w2^2)/2通过找到 的最佳组合来最小化w1w2b在所有约束下Y*(w1*X1+w2*X2+b) >= 1

我知道有quadprog解决这类问题的软件包,但我发现它太不直观了,以至于我无法正确指定问题:-( 我不想这么说,但 Excel 似乎更适合指定这样的优化问题:-(((

我的问题
如何正确地表述上述问题,以便它可以用 R 解决(无论是哪个包),并且程序会得到w1,w2和的正确值b(如上图所示)。请不要只发布链接,而是请提供有效的实际代码。如果您可以评论您的代码,那将是很棒的,这样您就可以清楚地知道您为什么要做您所做的事情。谢谢!

必要的数据在这里:

data <- matrix(c(2.947814,6.626878, 1,
                 2.530388,7.785050, 1,
                 3.566991,5.651046, 1,
                 3.156983,5.467077, 1,
                 2.582346,4.457777,-1,
                 2.155826,6.222343,-1,
                 3.273418,3.520687,-1),ncol=3,byrow=T)
colnames(data) <- c("X1","X2","y")
Run Code Online (Sandbox Code Playgroud)

附录
有些人对我提供代码(而不是简单的链接)的要求感到生气。我为此道歉并给出了我的理由,即到目前为止我在 SO 的答案中没有找到任何好的方法。更深层次的原因是这个问题是不寻常的,b因为它只在约束中而不是在目标函数中。所以我仍然认为这个问题非常适合 SO。

optimization r constraints quadprog quadratic-programming

1
推荐指数
1
解决办法
1094
查看次数