当我尝试在KNN算法中为minkowski指标定义小于1的p值时,我面临以下错误。
有谁能让我知道如何调整minkowski度量的p值小于1
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 2^(1 / p) > 2,但是点(0,1)与这两个点的距离均为1。由于这违反了三角形不等式,因此对于p
关于python - 如何在KNN中的minkowski度量中设置p <1?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54854740/