IndexError: логический индекс не соответствует индексированному массиву по измерению 1; размерность равна 1, но соответствующая логическая размерность равна 514 - PullRequest
0 голосов
/ 02 апреля 2020
    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

Пожалуйста, помогите мне, кто-нибудь

...