Как использовать расстояние махаланобиса в cross_validate () python sklearn? ошибка - размер V не совпадает - PullRequest
0 голосов
/ 06 марта 2020

Как использовать расстояние махаланобиса в cross_validate () python sklearn? Я получил ошибку, потому что ошибка - размер V не совпадает. вот мой код

model=neighbors.KNeighborsClassifier(n_neighbors=5,metric="mahalanobis",metric_params={'V': np.cov(X)})
results = cross_validate(estimator=model,X=X,y=y,cv=10,scoring=scoring)

1 Ответ

0 голосов
/ 07 марта 2020

К сожалению, метрика MahalanobisDistance c работает только тогда, когда n_neighbors больше или равен половине размера вашего набора данных.

Должно выполняться следующее:

from sklearn.model_selection import cross_validate
from sklearn.neighbors import KNeighborsClassifier
from sklearn.datasets import make_classification

N = 123
X, y = make_classification(n_samples=N)
scoring = "accuracy"
model = KNeighborsClassifier(n_neighbors=(N//2), 
                             metric="mahalanobis", 
                             metric_params={'V': np.cov(X)})
results = cross_validate(estimator=model,X=X,y=y,cv=10,scoring=scoring)

Надеемся кто-то с большим знанием, чем я, может предложить нам лучшее решение!

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