• 系统聚类k均值matlab算法

    X1=[x1;x2;x3]; X2=X1'; k1=mean(x1); %第一类均值 k2=mean(x2); %第二类均值 k3=mean(x3);%第三类均值 k=mean(X1);%总均值向量 R1=cov(x1(:,:,:)); %x1 类协方差矩阵 R2=cov(x2(:,:,:)); %x2 类协方差矩阵 R3=cov(x3(:,:,:)); %x3 类协方差矩阵 %总的类内离散度矩阵 SW=(200/600)*R1+(190/600)*R2+(210/600)*R3; [V,D] = eig(SW); %求取SW 的本征值和本征向量 %类间离散度矩阵 sb=(200/600)*(k1-k)*(k1-k)'+(190/600)*(k2-k)*(k2-k)'+(210/600)*(k3-k)*(k3-k)'; J1(:,1)=V(:,1)'*sb*V(:,1)/D(1,1);%判别指标,表征变化后分类性能。 J2(:,2)=V(:,2)'*sb*V(:,2)/D(2,2); J3(:,3)=V(:,3)'*sb*V(:,3)/D(3,3); A=[J1(:,1) J2(:,2) J3(:,3)]; [B I]=sort(A);%对J 排序,找到前两个最大值。 a=I(:,3);b=I(:,2); U=[V(:,a) V(:,b)];% 选择最大的个特征值对应的特征矢量作出变换矩阵 U=U' Y=U*X2; %Y=Y'; Y1=Y(:,1:200); Y2=Y(:,201:390); Y3=Y(:,391:600); Y1=Y1'; Y2=Y2'; Y3=Y3'; for i=1:200 r1(i)=Y1(i,1);end; for i=1:200 r2(i)=Y1(i,2);end; for i=1:190 r4(i)=Y2(i,1);end; for i=1:190 r5(i)=Y2(i,2);end; for i=1:210 r7(i)=Y3(i,1);end; for i=1:210 r8(i)=Y3(i,2);end; figure(2); plot(r1,r2,'*',r4,r5,'o',r7,r8,'.'); title('原始数据转化到可分类特征空间'); grid on;

    0
    100
    176KB
    2014-01-16
    12
上传资源赚积分or赚钱