clc;
clear all;
close all;
filename = 'data.xlsx';
sheet = 2;
X = xlsread(filename,sheet);
%% PCA主成分分析
meanX = ones(size(X,1),1) * mean(X); %中心化处理
centredX = X - meanX;
C = cov(centredX); %计算协方差矩阵
[W,Lambda] = eig(C); %W是特征向量组成的矩阵,Lambda是特征值组成的对角矩阵
ev = (diag(Lambda))'; %提取特征值
ev = ev(:,end:-1:1); %eig计算出的特征值是升序的,这里手动倒序(W同理)
W = W(:,end:-1:1);
Wr = W(:,1:10); %提取前N个主成分的特征向量
Tr = centredX * Wr; %新坐标空间的数据点
%% 开始聚类
cluster_num = 3;
[index_cluster,cluster] = kmeans(Tr,cluster_num);
%% 画出聚类效果
figure(1)
a = unique(index_cluster);
C = cell(1,length(a));
for i = 1:length(a)
C(1,i) = {find(index_cluster==a(i))};
end
for j = 1:cluster_num
data_get = Tr(C{1,j},:);
scatter(data_get(:,1),data_get(:,2),100,'filled','MarkerFaceAlpha',.6,'MarkerEdgeAlpha',.9);
hold on
end
%绘制聚类中心
plot(cluster(:,1),cluster(:,2),'ks','LineWidth',2);
hold on
title_str = ['Kmeans聚类',' 聚类数为:',num2str(cluster_num)];
title(title_str)
没有合适的资源?快使用搜索试试~ 我知道了~
【聚类】基于PCA+kmeans实现数据聚类附matlab代码.zip
共3个文件
png:1个
xlsx:1个
m:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 24 浏览量
2023-04-20
09:50:49
上传
评论 1
收藏 114KB ZIP 举报
温馨提示
1.版本:matlab2014/2019a,内含运行结果,不会运行可私信 2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,更多内容可点击博主头像 3.内容:标题所示,对于介绍可点击主页搜索博客 4.适合人群:本科,硕士等教研学习使用 5.博客介绍:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可si信
资源推荐
资源详情
资源评论
收起资源包目录
【聚类】基于PCA+kmeans实现数据聚类附matlab代码.zip (3个子文件)
【聚类】基于PCA+kmeans实现数据聚类附matlab代码
3.png 26KB
pca_kmeans.m 1KB
data.xlsx 91KB
共 3 条
- 1
资源评论
Matlab科研辅导帮
- 粉丝: 3w+
- 资源: 7793
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功