我正在尝试使用hdbscan进行聚类后重建脑肿瘤图像。
但是,hdbscan没有kmeans那样的聚类中心,因此我对如何获取聚类图像有些困惑。我尝试通过将(65536,3)数组与hdbscan标签即r匹配,并在获得每个聚类的平均聚类点的crs后将它们存储来获得参考聚类中心。
我不确定这是否是重建图像的最佳方法,即基于聚类获得一些均值中心并使用均值中心加标签来重建图像。
crs = np.zeros((dbnumber_of_clusters, 3))
for i in range(0, dbnumber_of_clusters):
dbcluster_points = mriarr[r == i]
dbcluster_mean = np.mean(dbcluster_points, axis=0)
crs[i, :] = dbcluster_mean
答案 0 :(得分:0)
HDBSCAN并非旨在“重建”数据。因此,可能没有一种优雅的方法。
使用每个聚类的平均值是一个明显的选择。模拟k-mrans所做的事情,但是如果聚类不是非凸,则该点可能位于实际聚类之外。因此,最好选择最密集的点。 此外,聚类应该是 hierarchical ,因此在计算聚类代表时,还应该考虑嵌套聚类的数据... 最后但并非最不重要的一点是,它可以产生“噪声簇”。那实际上不是一个集群,而仅仅是所有非集群数据。计算这样的点的单个代表性对象是没有意义的。取而代之的是,您可能希望将这些点视为每个点都带来自己的簇。