sklearn DBSCAN中的多个eps值

2024-05-23 14:49:58 发布

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

我想使用sklearn的DBSCAN实现。它们允许您使用自定义距离度量,但只能使用一个eps值。 我想要的是:

假设我的点每个都有3个特性,所以每个点都可以看作是p=np.array([p1,p2,p3])形式的numpy数组。两点p和{}是np.abs(p1-q1) < eps1和{}和{}的相邻点。通常,人们会使用d(p,q)<eps,其中d(,)是一个度量,eps是一个阈值。在

有没有一种方法可以很容易地将我的需求落实到sklearn中?在


Tags: numpy距离度量npabs数组特性sklearn
1条回答
网友
1楼 · 发布于 2024-05-23 14:49:58

您可以适当地缩放,然后使用最大规范。在

p = p * [1/eps1, 1/eps2, 1/eps3]

c = sklearn.cluster.DBSCAN(eps=1, metric="chebyshev", ...)

注意,DBSCAN使用<=而不是<。在

或者预先计算一个二进制“距离”矩阵,如果三个条件都成立,则距离为0,否则为1。但这需要O(n²)内存。在

相关问题 更多 >