scikit-learn - 如何在 scikit-learn 中为最近邻居使用用户定义的度量?

标签 scikit-learn distance metrics nearest-neighbor

我正在使用 scikit-learn 0.18.dev0。我知道之前有人问过完全相同的问题 here .我尝试了那里提供的答案,但出现以下错误

>>> def mydist(x, y):
...     return np.sum((x-y)**2)
...
>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3,   2]])

>>> nbrs = NearestNeighbors(n_neighbors=4, algorithm='ball_tree',
...            metric='pyfunc', func=mydist)

错误信息_init_params() got an unexpected keyword argument 'func'
看起来这个选项已被删除。如何在 sklearn.neighbors 中使用用户定义的矩阵?

最佳答案

正确的关键字是 metric :

import numpy as np
from sklearn.neighbors import NearestNeighbors

def mydist(x, y):
    return np.sum((x-y)**2)

nn = NearestNeighbors(n_neighbors=4, algorithm='ball_tree', metric=myfunc)

X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3,   2]])
nn.fit(X)

这在开发版的文档字符串中也有提到:https://github.com/scikit-learn/scikit-learn/blob/86b1ba72771718acbd1e07fbdc5caaf65ae65440/sklearn/neighbors/unsupervised.py#L48

关于scikit-learn - 如何在 scikit-learn 中为最近邻居使用用户定义的度量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35518403/

相关文章:

java - 通过测量颜色和边缘距离来组合欧几里得距离

azure - SPARK:在将Azure Blob存储与Spark群集一起使用时,如何访问AzureFileSystemInstrumentation?

spring-boot - 如何使用 spring boot 2 将 kafka 指标公开给/actuator/metrics

python - 如何覆盖 Sklearn 的 TSNE 以在 Pipeline 函数中使用?

python - .fit_transform 方法的输出

c# - 403 禁止。 WebException 未处理 .NET

java - Vertx - InfluxDB 指标保持连接打开

python - 使用 sklearn 缩放的 pandas 数据框列

machine-learning - 与子类别的区分

c# - 数学计算来检索两点之间的角度?