Python-双重不可行错误SVM二次问题OSQP

时间:2019-06-26 10:46:27

标签: python quadratic-programming

我需要为学校项目实施SVM。 但是,当我尝试使用OSQP库解决Python中的一个二次问题时,我遇到了一个问题。

问题是QP problem

我的约束是:

alpha >= 0
matrix Y.transpose() * alpha = 0

矩阵为:

[[  2.   3.  -4.  -5.  -8.]
 [  3.   5.  -6.  -9. -12.]
 [ -4.  -6.   8.  10.  16.]
 [ -5.  -9.  10.  17.  20.]
 [ -8. -12.  16.  20.  32.]]

下面的python代码设置了问题并尝试解决,但失败并出现双重不可行错误。

我已经更改了多个设置,例如(iter,dual_infeasible错误限制),但仍然失败

  • q对应于问题的右侧(线性部分)
  • A是约束( Y.transpose * alpha = 0)
  • l是下界
  • u是上限

    P = sparse.csc_matrix(bigMatrix) q = np.array([-1,-1,-1,-1,-1]) A = sparse.csc_matrix(np.transpose(Y)) l = np.array([0]) u = np.array([np.inf])

    prob = osqp.OSQP() prob.setup(P,q,A,l,u)
    res = prob.solve()

您有解决问题的建议吗? 注意:我不是100%确定问题是否正确设置。

我应该从这个问题获得的结果是:

alpha1 1.11022 x10^16, alpha2 2.5, alpha3 2., alpha4 0.5, alpha5 1.4363*10^24

0 个答案:

没有答案