2024-09-27 07:35:37 发布
网友
我在^{}python模块中的DBSCAN算法上测试图像集。相似性计算有其他选择:
# Compute similarities D = distance.squareform(distance.pdist(X)) S = 1 - (D / np.max(D))
一个加权的度量或者类似的东西我可以试试,举个例子?在
我相信DBSCAN估计器想要的是距离而不是相似性。但同样,当涉及到字符串时,它需要一个相似矩阵,甚至可以是一行代码来匹配两个字符串之间的相等性。因此,这取决于你如何使用相似性矩阵以及如何区分相邻对象和非相邻对象。在
有一个DBSCAN的推广,称为“广义DBSCAN”。在
实际上,对于DBSCAN,您甚至不需要距离。这就是为什么首先计算相似矩阵是没有意义的。在
您只需要一个谓词“getNeighbors”,它计算您认为是邻居的对象。在
请看:在DBSCAN中,除了用来测试一个对象是否是邻居之外,实际上并没有使用这个距离。所以你需要的就是这个布尔决定。在
您可以尝试以下方法:用所有1初始化矩阵。 对于任何两个您认为与您的应用程序相似的对象(如果不了解您的应用程序和数据,在这方面我们帮不了您很多忙),请在相应的单元格中填充0。 然后用epsilon=0.5运行DBSCAN,显然DBSCAN会将所有0作为邻居。在
你可以使用任何你喜欢的相似矩阵。它只需要基于一个有效的距离(对称,半正定)。在
我相信DBSCAN估计器想要的是距离而不是相似性。但同样,当涉及到字符串时,它需要一个相似矩阵,甚至可以是一行代码来匹配两个字符串之间的相等性。因此,这取决于你如何使用相似性矩阵以及如何区分相邻对象和非相邻对象。在
有一个DBSCAN的推广,称为“广义DBSCAN”。在
实际上,对于DBSCAN,您甚至不需要距离。这就是为什么首先计算相似矩阵是没有意义的。在
您只需要一个谓词“getNeighbors”,它计算您认为是邻居的对象。在
请看:在DBSCAN中,除了用来测试一个对象是否是邻居之外,实际上并没有使用这个距离。所以你需要的就是这个布尔决定。在
您可以尝试以下方法:用所有1初始化矩阵。 对于任何两个您认为与您的应用程序相似的对象(如果不了解您的应用程序和数据,在这方面我们帮不了您很多忙),请在相应的单元格中填充0。 然后用epsilon=0.5运行DBSCAN,显然DBSCAN会将所有0作为邻居。在
你可以使用任何你喜欢的相似矩阵。它只需要基于一个有效的距离(对称,半正定)。在
相关问题 更多 >
编程相关推荐