KNeighborsClassifier中是否有加权指标?

时间:2019-12-18 09:59:59

标签: python scikit-learn

我想看看是否可以在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)

谢谢

1 个答案:

答案 0 :(得分:0)

是的。

documentation中有一个参数

> metric_params--- dict, optional (default = None) Additional keyword arguments for the metric function.

对于sklearn l2,您可以指定权重,但是对于某些其他指标或您自己的版本,您可以