KNN Ошибка Махаланобиса - размер V не совпадает - Python - PullRequest
0 голосов
/ 22 января 2020

Я пытаюсь реализовать модель KNN, используя Mahalanobis в качестве метрического расстояния c, однако, когда я выполняю код, я получаю сообщение об ошибке:

Значение Ошибка: "размер V не соответствует

, где V - ковариационная матрица объектов.

Соответствующие части моего кода ниже:

X_train, X_test, y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=10,stratify=y)

knn2=KNeighborsClassifier(n_neighbors=20, metric='mahalanobis', metric_params={'V': np.cov(X_train)})

knn2.fit(X_train,y_train) # this is the line that causes the error. 

Я смотрел репо на github для расстояния sklearn metri c код (из строки 628 - Mahalanobis), и может видеть, что ошибка возникает из следующего:

cdef inline DTYPE_t rdist(self, DTYPE_t* x1, DTYPE_t* x2,
                              ITYPE_t size) nogil except -1:
        if size != self.size:
            with gil:
                raise ValueError('Mahalanobis dist: size of V does not match')

Я выяснил, что self.size в моем случае, но не могу понять, что такое size.

Может ли кто-нибудь помочь с этой ошибкой?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...