聚类 轮廓 matlab,聚类分析 - MATLAB & Simulink Example - MathWorks 中国

这篇博客介绍了使用 MATLAB 对 Fisher 鸢尾花数据进行 K 均值和层次聚类的方法。K 均值聚类将数据分为两个或三个簇,层次聚类则展示了数据在不同尺度下的分组。通过轮廓图和聚类树,作者展示了聚类效果,并讨论了不同距离度量对结果的影响。
摘要由CSDN通过智能技术生成

K 均值和层次聚类

Statistics and Machine Learning Toolbox 中的一些函数可执行 K 均值聚类和层次聚类。

K 均值聚类是一种分区方法,它将数据中的观测值视为具有位置和相互间距离的对象。它将对象划分为 K 个互斥簇,使每个簇中的对象尽可能彼此靠近,并尽可能远离其他簇中的对象。每个簇的特性由其质心或中心点决定。当然,聚类中使用的距离通常不代表空间距离。

层次聚类是通过创建聚类树,同时在多个距离尺度内调查数据分组的一种方法。与 K-均值法不同,树并不是一组簇的简单组合,而是一个多级层次结构,较低级别的簇在相邻的更高级别合并成新的簇。使用这种方法,您可以选择最适合您的应用场景的聚类尺度或级别。

此示例中使用的一些函数调用 MATLAB® 内置随机数生成函数。要得到与此示例完全相同的结果,请执行以下命令,将随机数生成器设置为已知状态。如果您不设置状态,结果可能会略有不同,例如,簇可能会以不同的顺序编号。另外,有可能产生次优聚类解(本示例也讨论了次优解,以及避免次优解的方法)。

rng(6,'twister')

Fisher 鸢尾花数据

20 世纪 20 年代,植物学家收集了 150 个鸢尾花标本(三个品种各取 50 个标本)的萼片长度、萼片宽度、花瓣长度和花瓣宽度的测量值。这些测量值被称为 Fisher 鸢尾花数据集。

在此数据集中,每个观测值都来自一个已知的品种,因此已经有明显的方法对数据进行分组。现在,我们将忽略品种信息,仅使用原始测量值对数据进行聚类。完成后,我们可以将得到的簇与实际的品种进行比较,以了解这三种鸢尾花是否具有不同的特性。

使用 K 均值聚类方法对 Fisher 鸢尾花数据进行聚类

函数 kmeans 使用迭代算法执行 K 均值聚类,该算法将对象分配给簇,使每个对象到其所在簇质心的距离之和最小。对 Fisher 鸢尾花数据应用该函数时,它将根据鸢尾花标本萼片和花瓣的测量值找到它们的自然分组。使用 K 均值聚类,您必须指定要创建的簇数。

首先,加载数据并调用 kmeans,将所需的簇数设置为 2,并使用平方欧几里德距离。要了解生成的簇区分数据的效果,可以绘制轮廓图。轮廓图显示一个簇中的每个点与相邻簇中的点的接近程度。

load fisheriris

[cidx2,cmeans2] = kmeans(meas,2,'dist','sqeuclidean');

[silh2,h] = silhouette(meas,cidx2,'sqeuclidean');

c531530114ce8653046cb7f13eddcbb3.png

从轮廓图中可以看出,两个簇中的大多数点都具有较大的轮廓值(大于 0.8),表明这些点可以与相邻簇很好地区分。但是,每个簇中还有一些点的轮廓值较低,表示它们靠近其他簇中的点。

事实证明,这些数据中的第四个测量值(花瓣宽度)与第三个测量值(花瓣长度)高度相关,因此前三个测量值的三维图可以很好地表示数据,而无需求助于四个维度。如果绘制数据,则使用不同的符号表示 kmeans 创建的每个簇,就可以识别轮廓值较小的点,也就是与其他簇中的点相距较近的点。

ptsymb = {'bs','r^','md','go','c+'};

for i = 1:2

clust = find(cidx2==i);

plot3(meas(clust,1),meas(clust,2),meas(clust,3),ptsymb{i});

hold on

end

plot3(cmeans2(:,1),cmeans2(:,2),cmeans2(:,3),'ko');

plot3(cmeans2(:,1),cmeans2(:,2),cmeans2(:,3),'kx');

hold off

xlabel('Sepal Length');

ylabel('Sepal Width');

zlabel('Petal Length');

view(-137,10);

grid on

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值