当我尝试为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
你不能,因为对于p < 1
而言,Minkowski距离不是一个度量,因此它对任何基于距离的分类器都没有用,例如kNN;来自Wikipedia:
对于p≥1,Minkowski距离是Minkowski不等式的度量。当p <1时,(0,0)和(1,1)之间的距离是
2^(1 / p) > 2
,但是点(0,1)与这两个点之间的距离为1。由于这违反了三角不等式,对于p <1,它不是度量。