如何在KNN中设置minkowski度量中的p <1?

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

当我尝试为KNN算法中的minkowski度量定义p值小于1时我面临的错误..任何人都可以告诉我如何调整minkowski度量值小于1的p值

sc=StandardScaler()
p_kn =Pipeline([('sc',sc),('kn',KNeighborsClassifier())])
grid_kn={'kn__n_neighbors':np.arange(3,30),'kn__weights':['uniform','distance'],'kn__p':[1,2,0.5]}
KN=GridSearchCV(p_kn,grid_kn,'accuracy',cv=cv)
KN.fit(x,y)

低于错误

ValueError:对于minkowski指标,p必须大于1

python machine-learning scikit-learn knn
1个回答
2
投票

你不能,因为对于p < 1而言,Minkowski距离不是一个度量,因此它对任何基于距离的分类器都没有用,例如kNN;来自Wikipedia

对于p≥1,Minkowski距离是Minkowski不等式的度量。当p <1时,(0,0)和(1,1)之间的距离是2^(1 / p) > 2,但是点(0,1)与这两个点之间的距离为1。由于这违反了三角不等式,对于p <1,它不是度量。

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