我想更改sklearn的KNeighborsClassifier使用的距离。距离是指要素空间中可以看到谁是点的邻居的人。更具体地说,我要使用以下距离:
d(X1,X2)= 0.1 * | X1 [0]-X2 [0] | + 0.9 * | X1 [1]-X2 [1] |
谢谢。
答案 0 :(得分:0)
只需定义您的自定义指标,即可:
def mydist(X1, X2):
return 0.1 * abs(X1[0] - X2[0]) + 0.9*abs(X1[1] - X2[1])
然后使用metric
这样的参数初始化KNeighboursClassifier
clf = KNeighborsClassifier(n_neighbors=3,metric=mydist,)
您可以详细了解sklearn中的距离和自定义距离度量here
请确保根据官方文档,您的自定义指标应遵循以下属性
Here is an example也是自定义指标。