К сожалению, метрика 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)
Надеемся кто-то с большим знанием, чем я, может предложить нам лучшее решение!