2024-05-23 14:49:58 发布
网友
我想使用sklearn的DBSCAN实现。它们允许您使用自定义距离度量,但只能使用一个eps值。 我想要的是:
eps
假设我的点每个都有3个特性,所以每个点都可以看作是p=np.array([p1,p2,p3])形式的numpy数组。两点p和{}是np.abs(p1-q1) < eps1和{}和{}的相邻点。通常,人们会使用d(p,q)<eps,其中d(,)是一个度量,eps是一个阈值。在
p=np.array([p1,p2,p3])
p
np.abs(p1-q1) < eps1
d(p,q)<eps
d(,)
有没有一种方法可以很容易地将我的需求落实到sklearn中?在
您可以适当地缩放,然后使用最大规范。在
p = p * [1/eps1, 1/eps2, 1/eps3] c = sklearn.cluster.DBSCAN(eps=1, metric="chebyshev", ...)
注意,DBSCAN使用<=而不是<。在
<=
<
或者预先计算一个二进制“距离”矩阵,如果三个条件都成立,则距离为0,否则为1。但这需要O(n²)内存。在
您可以适当地缩放,然后使用最大规范。在
注意,DBSCAN使用
<=
而不是<
。在或者预先计算一个二进制“距离”矩阵,如果三个条件都成立,则距离为0,否则为1。但这需要O(n²)内存。在
相关问题 更多 >
编程相关推荐