如何在cross_validate()python sklearn中使用马哈拉诺比斯距离?错误-V的大小不匹配

问题描述 投票:0回答:1

如何在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)
python scikit-learn distance knn mahalanobis
1个回答
0
投票

不幸的是,仅当n_neighbors大于数据集大小的一半时,MahalanobisDistance指标才有效。

以下内容应运行:

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)

希望有人比我能为我们俩提供更好的解决方案!

© www.soinside.com 2019 - 2024. All rights reserved.