MATLAB实现简单的聚类

  1. 使用部分鸢尾花数据(MATLAB自带数据),并做可视化
clc
clear
load fisheriris            % 载入matlab自带的鸢尾花数据集

s1 = meas(1:50,:);
[a,~] = sortrows(s1,-2);
S1 = a(1:25,1:2);

s2 = meas(51:100,:);
[a,~] = sortrows(s2,1);
S2 = a(1:25,1:2);

s3 = meas(101:150,:);
[a,b] = sortrows(s3,-1);
S3 = a(1:20,1:2);

meas = [S1;S2;S3];

species = species([1:25,51:75,101:120],:);

scatter(meas(:,1),meas(:,2),'.');
hold on
grid on
axis( [4 7.2 1.8 4.5] ) 
xlabel('Sepal length');
ylabel('Sepal width');
hold off

在这里插入图片描述
2. kmeans聚类

[cidx2,cmeans2] = kmeans(meas,3,'dist','sqeuclidean');
[silh2,~] = silhouette(meas,cidx2,'sqeuclidean');

在这里插入图片描述
3. 做聚类可视化

figure;
hold on
grid on
axis( [4 7.2 1.8 4.6] ) 
gscatter(meas(:,1),meas(:,2),cidx2,'rbg','...')
xlabel('Sepal length');
ylabel('Sepal width');
hold off

在这里插入图片描述
4. Hierarchical Clustering

eucD = pdist(meas,'euclidean');
clustTreeEuc = linkage(eucD,'average');
cophenet(clustTreeEuc,eucD)
h_gca = gca;
h_gca.TickDir = 'out';
h_gca.TickLength = [.002 0];
h_gca.XTickLabel = [];

在这里插入图片描述
本文参照:https://ww2.mathworks.cn/help/stats/cluster-analysis-example.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值