我想看看是否可以在KNeighborsClassifier中修改指标的权重。 L2欧几里得度量标准是这样的:
x = np.array([1,2,3])
y = np.array([6,5,4])
def d(x,y)=
sqrt((x[0]-y[0])^2 + (x[1]-y[1])^2 + (x[2]-y[2])^2)
但是,如果我想对L2指标增加权重,比如说[1,2,3]
,该怎么办?例如,
w = np.array([1,2,3])
def d2(x,y)=
sqrt(w[0]*(x[0]-y[0])^2 + w[1]*(x[1]-y[1])^2 + w[2]*(x[2]-y[2])^2)
我可以使用metric或metric_params做任何事情
KNeighborsClassifier(n_neighbors=5, weights='uniform', p=2, metric='minkowski', metric_params=None, **kwargs)
谢谢
答案 0 :(得分:0)
是的。
documentation中有一个参数
> metric_params--- dict, optional (default = None) Additional keyword arguments for the metric function.
对于sklearn l2,您可以不指定权重,但是对于某些其他指标或您自己的版本,您可以