如何解决使用 cvxpy 实现 SVM
我正在使用 cvxpy 实现软边距 svm。我不断收到错误 ValueError: setting an array element with a sequence。但我不明白这个错误是从哪里来的。
此代码
import numpy as np
import matplotlib.pyplot as plt
import cvxpy as cp
from cvxpy import *
np.random.seed(6201)
mean1 = [-1,-1]
mean2 = [1,1]
cov = [[1,0.25],[0.25,1]]
x = np.random.multivariate_normal(mean1,cov,200)
y = np.random.multivariate_normal(mean2,200)
#plt.scatter(x[:,0],x[:,1],color='blue')
#plt.scatter(y[:,y[:,color='red')
print(x.shape)
m = x.shape[0]
n = x.shape[1]
w = cp.Variable((n,1))
b = cp.Variable()
xi = cp.Variable((m,1))
print(w.shape)
print(b.shape)
print(y.shape)
objective = cp.Minimize(1/2*cp.square(cp.norm(w))+ C * cp.sum(xi))
constraints=[cp.matmul(y,(np.dot(x,w) + b)) + xi >=1,xi>=0 ]
prob = cp.Problem(objective,constraints)
result = prob.solve()
报错
---> 64 constraints=[cp.matmul(y,xi>=0 ]
ValueError: setting an array element with a sequence.
谁能告诉我如何解决上面代码中的问题,以便它停止抛出此错误消息?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。