📄 fcmbreastcancer.m
字号:
clear;
clc;
tic;
load breastcancer.mat datavectorcancer;%%%载入数据集
% datavectorcancer1=breastCancer;
% [vectorsize,vectorlength]=size(datavectorcancer1);
% datavectorcancer=zeros(vectorsize,vectorlength);
% for i=1:vectorlength
% if sum(datavectorcancer1(:,i))~=0
% datavectorcancer(:,i)=(datavectorcancer1(:,i))/sum(datavectorcancer1(:,i));
% end
% end
times=1;
while times<=30
[center,U,obj_fcn] = fcm(datavectorcancer,2)
i=length(obj_fcn);
obj(times)=obj_fcn(i);
inter_distance=pdist(center);
maxU = max(U);
% Find the data points with highest grade of membership in cluster 1
num1= find(U(1,:) == maxU);
% Find the data points with highest grade of membership in cluster 2
num2 = find(U(2,:) == maxU);
cluster_num1=length(num1);
cluster_num2=length(num2);
for i1=1:cluster_num1
datavectorcancer1=datavectorcancer(num1(i1));
end
for i2=1:cluster_num2
datavectorcancer2=datavectorcancer(num2(i2));
end
X1=datavectorcancer1-ones(cluster_num1,1)*center(1,:);
Y1_1=sqrt(sum((X1.^2)'));
Y1(times)=sum(Y1_1);
X2=datavectorcancer2-ones(cluster_num2,1)*center(2,:);
Y2_2=sqrt(sum((X2.^2)'));
Y2(times)=sum(Y2_2);
intra_distance(times)=(Y1(times)+Y2(times))/2;
times=times+1;
end
obj=sum(obj)/(times-1);
inter=sum(inter_distance)/(times-1);
intra=sum(intra_distance)/(times-1);
obj
inter
intra
T=toc;
T
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -