def svmPredict(self, X):
if X.shape[1] == 1:
X = np.transpose(X)
m = X.shape[0]
p = np.zeros((m, 1))
pred = np.zeros((m, 1))
if self.model['kernelFunction'] == linear_kernel:
p = X.dot(self.model['w']) + self.model['b']
elif self.model['kernelFunction'] == gaussian_kernel:
X1 = np.sum(np.power(X, 2), axis=1).reshape(-1, 1)
X2 = np.transpose(np.sum(np.power(self.model['X'], 2), axis=1))
K = X1 + (X2.T - (2 * (X @ (self.model['X']).T)))
K = np.power(self.model['kernelFunction'](1, 0), K)
K = np.transpose(self.model['y']) * K
K = np.transpose(self.model['alphas']) * K
p = np.sum(K, axis=1)
else:
for i in range(m):
prediction = 0
for j in range(self.model['X'].shape[0]):
prediction = prediction + self.model['alphas'][j] * self.model['y'][j] * self.model['kernelFunction'](np.transpose(X[i,:]), np.transpose(self.model['X'][j,:]))
p[i] = prediction + self.model['b']
pred[p >= 0] = 1
pred[p < 0] = 0
return pred
Xtrain = np.double(newlist)
Ytrain = np.double(actual)
model = SVM()
model.svmTrain(Xtrain, Ytrain)
y_predicted = model.svmPredict(Xtrain)
我是编程初学者,但必须这样做,我在运行代码时收到以下错误 pred [p> = 0] = 1 IndexError:布尔索引与维度1上的索引数组不匹配;维为1,但对应的布尔维为514 pred [p> = 0] = 1 IndexError:布尔索引与维度1上的索引数组不匹配;维度为1,但相应的布尔维度为514
任何人都请帮助我