我有一套点。它们的几何形状(SRID:4326)存储在数据库中。我得到了一个代码,旨在用 DBSCAN 对这些点进行聚类。参数设置如下:eps=1000,min_points=1。
我获得了距离小于 1000 米的集群。我相信距离小于 1000 米的两个点属于同一个集群。epsilon 真的以米为单位吗?
代码如下:
self.algorithm='DBSCAN'
X=self.data[:,[2,3]]
if self.debug==True:
print 'Nbr of Points: %d'% len(X)
# print X.shape
# print dist_matrix.shape
D = distance.squareform(distance.pdist(X,'euclidean'))
# print dist_matrix
# S = 1 - (D / np.max(D))
db = DBSCAN(eps, min_samples).fit(D)
self.core_samples = db.core_sample_indices_
self.labels = db.labels
目的不是找到另一种运行方式,而是真正了解 eps 的价值。它在距离方面代表什么。Min_sample 设置为 1,因为我接受确实拥有 1 个样本大小的集群。