我需要为学校项目实施SVM。 但是,当我尝试使用OSQP库解决Python中的一个二次问题时,我遇到了一个问题。
我的约束是:
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错误限制),但仍然失败
( Y.transpose * alpha = 0)
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