【发布时间】:2020-11-12 21:43:13
【问题描述】:
我正在使用 julia 的 Clustering 包在 UMAP 的输出上获取 dbscan 聚类结果,但我一直在尝试从 DBscanresult 数据结构中获取集群索引。我的目标是将簇索引作为 2D 散点图的向量传递,但我找不到从 dbscan 结果中获取该向量的方法。
Julia 在 dbscan 下实现了两种方法。我正在使用adjacency list implementation,它采用 n x d 点坐标数组(下面的 umapresults)。
db = dbscan(umapresults, .1, min_neighbors = 10, min_cluster_size = 10)
产生结果:
13-element Array{DbscanCluster,1}:
DbscanCluster(17, [4, 12, 84, 90, 94, 675, 676, 737, 873, 965], [27, 108, 177, 880, 954, 1050, 1067])
DbscanCluster(10, Int64[], [46, 48, 51, 57, 188, 225, 226, 228, 270, 542])
DbscanCluster(11, [48, 51, 228], [46, 49, 57, 188, 225, 226, 270, 542])
DbscanCluster(14, [418, 759, 832, 988, 1046], [830, 831, 855, 865, 989, 991, 996, 1021, 1070])
DbscanCluster(10, Int64[], [624, 654, 664, 803, 805, 821, 859, 987, 1057, 1069]) ...
但是 ACAICD 没有直接的方法可以从这些结果中获得唯一的集群索引。
理想情况下,我想要一个产生独特分配的实现:
assignments::Vector{Int}: vector of clusters indices, where each point was assigned to a single cluster
这个方法确实存在,并且是为 dbscan 的“距离矩阵”版本实现的,但对于“邻接列表”实现,没有等效的方法。
您的见解将不胜感激。
【问题讨论】:
标签: julia cluster-analysis dbscan