MATLAB用分级集群聚类费舍尔虹膜数据

为什么用分级集群

K-Means集群生成iris数据的单个分区,但是你可能还希望研究数据中不同的分组规模。通过创建集群的分层树,分层集群或者说分级集群就可以做到这一点。


分析费舍尔虹膜数据

首先,使用虹膜数据中观测值之间的距离创建一个集群树。首先使用欧几里得距离。


eucD = pdist(meas,'euclidean');
clustTreeEuc = linkage(eucD,'average');

cophenetic相关是验证聚类树与原始距离一致的一种方法。较大的值则表明分集树能很好地匹配距离,因为观察值之间的成对联系与其实际的成对距离相关。这里的树看起来很匹配距离:


ans =
    0.8770

为了可视化集群的层次结构,可以绘制树状图:


[h,nodes] = dendrogram(clustTreeEuc,0);
h_gca = gca;
h_gca.TickDir = 'out';
h_gca.TickLength = [.002 0];
h_gca.XTickLabel = [];
树状图

这棵树的根节点比其他节点高得多,证实了K-Means聚类的结果: 即有两个较大的、截然不同的观测组(参考上一篇:MATLAB 聚类分析)。在这两组中,可以看到当考虑越来越小的距离时,更低层次的组出现了。有许多不同级别的群体,规模不同,差异程度也不同。

基于K-Means聚类的结果,余弦可能也是一个很好的距离度量选择。结果得到的层次树非常不同,这意味着用一种非常不同的方式来观察虹膜数据中的组结构。


load fisheriris
cosD = pdist(meas,'cosine');
clustTreeCos = linkage(cosD,'average');
cophenet(clustTreeCos,cosD)
ans = 0.9360

[h,nodes] = dendrogram(clustTreeCos,0);
h_gca = gca;
h_gca.TickDir = 'out';
h_gca.TickLength = [.002 0];
h_gca.XTickLabel = [];
余弦距离的分集数
余弦距离的分集数

这棵树的最级将鸢尾标本分成两组。树状图显示,相对于欧几里得距离,使用余弦距离时组内的差异比组间的差异要小得多。

这正是我们数据分析时所期望的,因为余弦距离计算的是从原点到相同“方向”的物体的两两距离为零。

由于有150个观察值,这个图很杂乱,但是您可以制作一个简化的树状图,它不显示树的最低层次:


[h,nodes] = dendrogram(clustTreeCos,12);
去除地层分级
去除地层分级

这棵树的三个最高的节点分离出三个同等大小的组,加上一个单独的样本(标记为叶节点5),它不靠近任何组。


[sum(ismember(nodes,[11 12 9 10])) sum(ismember(nodes,[6 7 8])) ...
                  sum(ismember(nodes,[1 2 4 3])) sum(nodes==5)]
ans =
    54    46    49     1

对于许多需求,树状图可能已经是足够充分的结果了。但是,可以更进一步,使用cluster函数切割树,并像K-Means那样显式地将观察数据划分为特定的集群。使用来自余弦距离的层次结构来创建集群,指定一个链接高度,该高度将在三个最高节点下面切割树,并创建四个集群,然后绘制集群的原始数据。

四个集群在空间上的分布
四个集群在空间上的分布

这张图显示,使用三个聚类,使用余弦距离的层次聚类的结果与使用K-Means的结果在性质上相似。但是,创建层次化的聚类树可以一次将需要大量试验的K- means聚类中的不同K值可视化。

分层集群还可以试验不同的链接。例如,用单一链接将虹膜数据聚类,这种链接倾向于在比平均距离更大的距离上将对象连接在一起,从而对数据中的结构给出了非常不同的解释。

分层集群还可以试验不同的链接。例如,用单一链接将虹膜数据聚类,这种链接倾向于在比平均距离更大的距离上将对象连接在一起,从而对数据中的结构给出了非常不同的解释。


clustTreeSng = linkage(eucD,'single');
[h,nodes] = dendrogram(clustTreeSng,0);
h_gca = gca;
h_gca.TickDir = 'out';
h_gca.TickLength = [.002 0];
h_gca.XTickLabel = [];
单一链接
单一链接





公众号

关注公众号,获取一手资讯

“ MATLAB用分级集群聚类费舍尔虹膜数据 ” comments 0

评论/回复

电子邮件地址不会被公开。 必填项已用*标注