我想使用'KDtree'(这是最好的选择.其他'KNN'算法对我的项目来说不是最佳选择)和自定义距离度量.我在这里检查了一些类似问题的答案,这应该有用......但是没有.
distance_matrix是symetric,应该是定义:
array([[ 1., 0., 5., 5., 0., 3., 2.],
[ 0., 1., 0., 0., 0., 0., 0.],
[ 5., 0., 1., 5., 0., 2., 3.],
[ 5., 0., 5., 1., 0., 4., 4.],
[ 0., 0., 0., 0., 1., 0., 0.],
[ 3., 0., 2., 4., 0., 1., 0.],
[ 2., 0., 3., 4., 0., 0., 1.]])
Run Code Online (Sandbox Code Playgroud)
我知道我的度量标准不是"正式度量标准",但在文档中它说我的函数必须是"正式度量",只有当我使用'ball tree'(下User-defined distance:)时.这是我的代码:
from sklearn.neighbors import DistanceMetric
def dist(x, y):
dist = 0
for elt_x, elt_y in zip(x, …Run Code Online (Sandbox Code Playgroud)