mc_gai.m

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

M
34
字号
function v=MC_gai(filename,madoid) % 给出分类重心属性值相应的MC标准,需要最大化=1/(det(W)/det(T)*g^2);
                                         % filename基金的属性文件(xls) 
                                         % madoid:g个分组的重心实值属性矩阵
                                         % 
                                         
a=xlsread(filename);
[n q]=size(a);
[g q]=size(madoid);
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); % w代表每组方差-协方差阵,groupm代表每组平均属性值,nk代表每组基金个数
for i=1:g
    ti=find(t==i);nk(i)=length(ti);
    if ti
    x=a(ti,:);  % 第i组基金属性矩阵
    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; 
v=1/(det(w0)/det(T)*g^2)
end

⌨️ 快捷键说明

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