IndexError:布尔索引与维度1上的索引数组不匹配;维为1,但相应的布尔维为514

时间:2020-04-02 18:41:34

标签: python numpy svm

    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

任何人都请帮助我

0 个答案:

没有答案