如何在scikitlearn(python)的KernelDensity中使用用户定义的度量

2024-09-28 03:22:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用scikitlearn(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算法应该接受用户定义的度量。 如果我按这里给出的方式运行此代码,会出现以下错误:

^{pr2}$

错误似乎来自:

sklearn.neighbors.dist_metrics.PyFuncDistance.__init__

我不明白。如果我检查上面代码中的'dt'给了我什么,我就得到了我想要的。双对数(十) 返回正确的值。 我做错什么了?在

提前谢谢。在


Tags: 代码用户示例定义度量def错误dt
1条回答
网友
1楼 · 发布于 2024-09-28 03:22:36

解决方案是

kernelModel=KernelDensity(...,metric='pyfunc',metric_params={"func":myDistance})

号召Distancemetric.get_metric没有必要。 米

相关问题 更多 >

    热门问题