我使用linkage
为大约5000个实例的数据集生成凝聚层次聚类。我想想象一下'底部'在层次结构中合并,即靠近具有最小距离度量的叶子的节点。
不幸的是,dendrogram
可视化效果更倾向于显示“{3}}顶部'算法中最后一次合并的节点。默认情况下,它显示前30个节点,折叠树的底部。我可以更改P
值以显示更多节点,但我必须显示所有5000+以查看聚类的最低级别,此时该图不再可读。
例如,从linkage
documentation example
openExample('stats/CompareClusterAssignmentsToClustersExample')
run CompareClusterAssignmentsToClustersExample
dendrogram(Z, 'Orient', 'Left', 'Labels', species);
生成可见前30个节点的树形图。带有数字标签的节点正在折叠树的较低层。
我可以增加可见节点的数量,以便以可读性为代价来包含所有叶子。
dendrogram(Z, size(Z,1), 'Orient', 'Left', 'Labels', species);
我真正喜欢的是上面的放大版本,如下面的示例,但显示了前30个最接近的群集。
我尝试使用Z
的前30行提供函数,
dendrogram(Z(1:30), 'Orient', 'Left');
但是这会引发"指数超过矩阵维度。"当其中一行引用行中的集群时出现错误> 30.
我也尝试使用树形图Reorder
属性,但是我很难找到一个有效的排序,从最近到最远的顺序对集群进行排序。
%The Z matrix is in order from closest cluster to furthest,
% so I can use it to create an ordering
Y = reshape(Z(:, 1:2)', 1, [])
Y = Y(Y<151);
dendrogram(Z, 30, 'Orient', 'Left', 'Labels', species, 'Reorder', Y);
我收到错误
在请求的节点排序中,属于某些数据点 图中的相同叶子由属于的点分开 其他叶子。尝试使用不同的顺序。
如果计算整个树是因为存在分支交叉,那么这种排序可能是不可能的,但我希望如果我只看一部分树和更高级别的集群不被考虑。
如何改进可视化以在树形图中显示最低级别的聚类?