【发布时间】:2015-06-07 11:32:01
【问题描述】:
我正在使用 scikit-learn (0.14) 并尝试为我的 KernelDensity 估计实现用户定义的指标。
以下代码是我的代码结构示例:
def myDistance(x,y):
return np.sqrt(sum((x - y)**2))
dt=DistanceMetric.get_metric("pyfunc",func=myDistance)
kernelModel=KernelDensity(algorithm='ball_tree',metric='pyfunc')
kernelModel.fit(X)
根据文档,BallTree 算法应该接受用户定义的指标。 如果我按照此处给出的方式运行此代码,则会出现以下错误:
TypeError: __init__() takes exactly 1 positional argument (0 given)
错误似乎来自:
sklearn.neighbors.dist_metrics.PyFuncDistance.__init__
我不明白这一点。如果我检查上面代码中的“dt”给了我什么,我会得到我所期望的。 dt.pairwise(X) 返回正确的值。 我做错了什么?
提前致谢。
【问题讨论】:
标签: python scikit-learn kernel-density metric