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)
Matlab科研辅导帮
- 粉丝: 3w+
- 资源: 7809
最新资源
- 基于web的在线学习管理系统设计与实现
- 基于JavaWeb的汽车租赁平台论文.doc
- 基于javaweb的KTV点歌管理系统论文.doc
- 预警插件-Fine-report11
- 建设项目现场高温人员中暑事故应急预案.docx
- 建设项目工程超高层测量放线控制方案.docx
- 建筑公司建设项目现场雷电事故应急预案.docx
- 建筑公司员工食物中毒事故应急预案.docx
- 建筑公司建设项目现场风灾事故应急预案.docx
- 建筑集团建设项目火险应急预案.docx
- 深圳建设施工项目物体打击事故应急预案.docx
- 深圳建设项目高处坠落事故应急预案.docx
- 深圳建设项目机械伤害事故应急预案.docx
- 深圳建设项目施工现场各类事故应急预案.docx
- 深圳建设项目现场触电应急预案.docx
- 深圳建设项目坍塌事故应急预案.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈