Как восстановить образ после кластеризации с помощью hdbscan?

Я пытаюсь восстановить изображение опухоли головного мозга после кластеризации с использованием hdbscan.

Однако hdbscan не имеет кластерных центров в отличие от kmeans, поэтому я немного запутался в том, как получить кластерное изображение. Я попытался получить центр кластера ref, сопоставив массив (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

1 ответ

HDBSCAN не предназначен для "восстановления" данных. Так что не может быть элегантного способа.

Использование среднего значения каждого кластера является очевидным выбором. моделирование того, что делает k-mrans, но такая точка может лежать вне фактического кластера, если кластер не является выпуклым. Поэтому может быть целесообразно выбрать наиболее плотную точку вместо этого. Кроме того, кластеризация должна быть иерархической, поэтому при вычислении представителя кластера следует также учитывать данные вложенных кластеров... И последнее, но не менее важное, это может привести к "шумовому кластеру". На самом деле это не кластер, а просто все некластеризованные данные. Вычисление единственного репрезентативного объекта из таких точек не имеет смысла. Вместо этого вы, вероятно, захотите обработать эти точки, поскольку каждая точка приносит свой кластер.

Другие вопросы по тегам