mc.asv

来自「运用遗传算法进行聚类分析」· ASV 代码 · 共 37 行

ASV
37
字号
function v=MC(filename,chrom,len) % v MC标准;filename chrom len
a=xlsread(filename);
[n q]=size(a);
[cx cy]=size(chrom);
g=cy/len/q;
v=zeros(cx,1);
%madoid=ones(g,q)
%for i=1:g
%    mad
for s=1:cx
madoidtemp=reshape(chrom(s,:),q*len,g);
madoid=bs2rv(madoidtemp',[repmat(len,1,q);min(a);max(a);repmat(0,1,q);repmat(0,1,q);repmat(1,2,q)]);
t=zeros(1,n);
for i=1:n
   [temp t(i)]=min(sum((repmat(a(i,:),g,1)-madoid).^2,2));
end
w=zeros(q,q,g);groupm=zeros(g,q);nk=zeros(1,g);
for i=1:g
    ti=find(t==i);nk(i)=length(ti);
    if ti
    x=a(ti,:);groupm(i,:)=mean(x);
    x=x-repmat(groupm(i,:),length(ti),1);
    end
    
    for j=1:length(ti)
        w(:,:,i)=w(:,:,i)+x(j,:)'*x(j,:);
    end
end
w0=sum(w,3);% W
b=zeros(q,q);% B
groupm=groupm-repmat(mean(a),g,1);
for i=1:g
    b=b+groupm(i,:)'*groupm(i,:)*nk(i);
end
T=b+w0; % T
v(s)=1/(det(w0)/det(T)*g^2);
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?