如何在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)
不幸的是,仅当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)
希望有人比我能为我们俩提供更好的解决方案!