Я использую dendrogram
из scipy
для построения иерархической кластеризации с помощью matplotlib
следующим образом:
mat = array([[1, 0.5, 0.9],
[0.5, 1, -0.5],
[0.9, -0.5, 1]])
plt.subplot(1,2,1)
plt.title("mat")
dist_mat = mat
linkage_matrix = linkage(dist_mat,
"single")
print "linkage2:"
print linkage(1-dist_mat, "single")
dendrogram(linkage_matrix,
color_threshold=1,
labels=["a", "b", "c"],
show_leaf_counts=True)
plt.subplot(1,2,2)
plt.title("1 - mat")
dist_mat = 1 - mat
linkage_matrix = linkage(dist_mat,
"single")
dendrogram(linkage_matrix,
color_threshold=1,
labels=["a", "b", "c"],
show_leaf_counts=True)
Мои вопросы: во-первых, почему здесь mat
и 1-mat
дают одинаковые кластеры? и во-вторых, как я могу аннотировать расстояние вдоль каждой ветки дерева с помощью dendrogram
, чтобы сравнить расстояния между парами узлов?
Наконец, кажется, что флаг show_leaf_counts
игнорируется, есть ли способ включить его, чтобы показать количество объектов в каждом классе? спасибо.