资源简介
将给定数据进行降维后,利用K-means进行聚类
代码片段和文件信息
clc
clear all
fid=fopen(‘data.txt‘‘r‘);
X=fscanf(fid‘%g‘[4 150]);
[m n]=size(X);
X=X‘;
an=fclose(fid);
fprintf(‘标准样本变换法标准化的(std):\n‘)
std=zscore(X)
fprintf(‘计算相关系数矩阵(st):\n‘)
st=corrcoef(std)
fprintf(‘特征向量(vec)及特征值(val):\n‘)
[vecval]=eig(st)
newval=diag(val);
[yi]=sort(newval); %对特征根进行排序,y为排序结果,i为索引
fprintf(‘特征根排序:\n\n‘)
for z=1:length(y)
newy(z)=y(length(y)+1-z);
end
fprintf(‘%g\n‘newy)
rate=y/sum(y);%【计算贡献率】
fprintf(‘\n贡献率:\n‘)
newrate=(newy/sum(newy))%
sumrate=0;
newi=[];
for k=length(y):-1:1
sumrate=sumrate+rate(k);
newi(length(y)+1-k)=i(k);
if sumrate>0.85 break; %【85%在这里改动】
end
end
fprintf(‘主成分数:%g\n\n‘length(newi));%【newi里放的是主成分】
fprintf(‘主成分荷载:\n‘)
for p=1:length(newi)
for q=1:length(y)
result(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4348 2015-12-07 18:12 data.txt
文件 1326 2015-12-08 22:07 pca.m
----------- --------- ---------- ----- ----
5674 2
评论
共有 条评论