?? weightcloudclass.m
字號:
function weightcloudclass
global weight;
n=300;
x1(1,:)=[5.1,4.9,4.7,4.6,5.0,5.4,4.6,5.0,4.4,4.9,5.4,4.8,4.8,4.3,5.8,5.7,5.4,5.1,5.7,5.1,5.4,5.1,4.6,5.1,4.8,5.0,5.0,5.2,5.2,4.7,4.8,5.4,5.2,5.5,4.9,5.0,5.5,4.9,4.4,5.1,5.0,4.5,4.4,5.0,5.1,4.8,5.1,4.6,5.3,5.0];
x1(2,:)=[3.5,3.0,3.2,3.1,3.6,3.9,3.4,3.4,2.9,3.1,3.7,3.4,3.0,3.0,4.0,4.4,3.9,3.5,3.8,3.8,3.4,3.7,3.6,3.3,3.4,3.0,3.4,3.5,3.4,3.2,3.1,3.4,4.1,4.2,3.1,3.2,3.5,3.1,3.0,3.4,3.5,2.3,3.2,3.5,3.8,3.0,3.8,3.2,3.7,3.3];
x1(3,:)=[1.4,1.4,1.3,1.5,1.4,1.7,1.4,1.5,1.4,1.5,1.5,1.6,1.4,1.1,1.2,1.5,1.3,1.4,1.7,1.5,1.7,1.5,1.0,1.7,1.9,1.6,1.6,1.5,1.4,1.6,1.6,1.5,1.5,1.4,1.5,1.2,1.3,1.5,1.3,1.5,1.3,1.3,1.3,1.6,1.9,1.4,1.6,1.4,1.5,1.4];
x1(4,:)=[0.2,0.2,0.2,0.2,0.2,0.4,0.3,0.2,0.2,0.1,0.2,0.2,0.1,0.1,0.2,0.4,0.4,0.3,0.3,0.3,0.2,0.4,0.2,0.5,0.2,0.2,0.4,0.2,0.2,0.2,0.2,0.4,0.1,0.2,0.1,0.2,0.2,0.1,0.2,0.2,0.3,0.3,0.2,0.6,0.4,0.3,0.2,0.2,0.2,0.2];
x2(1,:)=[7.0,6.4,6.9,5.5,6.5,5.7,6.3,4.9,6.6,5.2,5.0,5.9,6.0,6.1,5.6,6.7,5.6,5.8,6.2,5.6,5.9,6.1,6.3,6.1,6.4,6.6,6.8,6.7,6.0,5.7,5.5,5.5,5.8,6.0,5.4,6.0,6.7,6.3,5.6,5.5,5.5,5.5,5.8,6.0,5.4,6.0,6.7,6.3,5.6,5.5];
x2(2,:)=[3.2,3.2,3.1,2.3,2.8,2.8,2.3,2.4,2.9,2.7,2.0,3.0,2.2,2.9,2.9,3.1,3.0,2.7,2.2,2.5,3.2,2.8,2.5,2.8,2.9,3.0,2.8,3.0,2.9,2.6,2.4,2.4,2.7,2.7,3.0,3.4,3.1,2.3,3.0,2.5,2.6,3.0,2.6,2.3,2.7,3.0,2.9,2.9,2.5,2.8];
x2(3,:)=[4.7,4.5,4.9,4.0,4.6,4.5,4.7,3.3,4.6,3.9,3.5,4.2,4.0,4.7,3.6,4.4,4.5,4.1,4.5,3.9,4.8,4.0,4.9,4.7,4.3,4.4,4.8,5.0,4.5,3.5,3.8,3.7,3.9,5.1,4.5,4.5,4.7,4.4,4.1,4.0,4.4,4.6,4.0,3.3,4.2,4.2,4.2,4.3,3.0,4.1];
x2(4,:)=[1.4,1.5,1.5,1.3,1.5,1.3,1.6,1.0,1.3,1.4,1.0,1.5,1.0,1.4,1.3,1.4,1.5,1.0,1.5,1.1,1.8,1.3,1.5,1.2,1.3,1.4,1.4,1.7,1.5,1.0,1.1,1.0,1.2,1.6,1.5,1.6,1.5,1.3,1.3,1.3,1.2,1.4,1.2,1.0,1.3,1.2,1.3,1.3,1.1,1.3];
x3(1,:)=[6.3,5.8,7.1,6.3,6.5,7.6,4.9,7.3,6.7,7.2,6.5,6.4,6.8,5.7,5.8,6.4,6.5,7.7,7.7,6.0,6.9,5.6,7.7,6.3,6.7,7.2,6.2,6.1,6.4,7.2,7.4,7.9,6.4,6.3,6.1,7.7,6.3,6.4,6.0,6.9,6.7,6.9,5.8,6.8,6.7,6.7,6.3,6.5,6.2,5.9];
x3(2,:)=[3.3,2.7,3.0,2.9,3.0,3.0,2.5,2.9,2.5,3.6,3.2,2.7,3.0,2.5,2.8,3.2,3.0,3.8,2.6,2.2,3.2,2.8,2.8,2.7,3.3,3.2,2.8,3.0,2.8,3.0,2.8,3.8,2.8,2.8,2.6,3.0,3.4,3.1,3.0,3.1,3.1,3.1,2.7,3.2,3.3,3.0,2.5,3.0,3.4,3.0];
x3(3,:)=[6.0,5.1,5.9,5.6,5.8,6.6,4.5,6.3,5.8,6.1,5.1,5.3,5.5,5.0,5.1,5.3,5.5,6.7,6.9,5.0,5.7,4.9,6.7,4.9,5.7,6.0,4.8,4.9,5.6,5.8,6.1,6.6,6.4,5.6,5.1,6.1,5.6,5.5,4.8,5.4,5.6,5.1,5.1,5.9,5.7,5.2,5.0,5.2,5.4,5.1];
x3(4,:)=[2.5,1.9,2.1,1.8,2.2,2.1,1.7,1.8,1.8,2.5,2.0,1.9,2.1,2.0,2.4,2.3,1.8,2.2,2.3,1.5,2.3,2.0,2.0,1.8,2.1,1.8,1.8,1.8,2.1,1.6,1.9,2.0,2.2,1.5,1.4,2.3,2.4,1.8,1.8,2.1,2.4,2.3,1.9,2.3,2.5,2.3,1.9,2.0,2.3,1.8];
x(1,1,:)=x1(1,:);x(1,2,:)=x2(1,:);x(1,3,:)=x3(1,:);
x(2,1,:)=x1(2,:);x(2,2,:)=x2(2,:);x(2,3,:)=x3(2,:);
x(3,1,:)=x1(3,:);x(3,2,:)=x2(3,:);x(3,3,:)=x3(3,:);
x(4,1,:)=x1(4,:);x(4,2,:)=x2(4,:);x(4,3,:)=x3(4,:);
%計算云模型的熵
for i=1:4
for j=1:3
%en(i,j)=(max(x(i,j,:))-min(x(i,j,:)))/6;
en(i,j)=std(x(i,j,:));
ex(i,j)=mean(x(i,j,:));
max1(i,j)=max(x(i,j,:));
min1(i,j)=min(x(i,j,:));
end
end
min1
max1
ex
for i=1:4
[B(i,:),ix(i,:)]=sort(ex(i,:));
end
%計算分解云的熵
% for i=1:4
% [B(i,:),ix(i,:)]=sort(ex(i,:));
% a=[x1(i,:) x2(i,:) x3(i,:)];
% exx(i)=mean(a);
%enn(i)=(max(a)-min(a))/6;
%en(i,1)=(B(i,1)-B(i,2))/(B(i,1)-exx(i)-3*enn(i))*enn(i);
%en(i,2)=(B(i,2)-B(i,3))/(B(i,1)-exx(i)-3*enn(i))*enn(i);
%en(i,3)=(B(i,3)-exx(i)-3*enn(i))/(B(i,1)-exx(i)-3*enn(i))*enn(i);
%將云模型的熵調整為來次序 ,分解云的熵用en1表示
%for j=1:3
% en1(i,ix(i,j))=en(i,j);
%end
%end
%計算屬性的不相交個數,給屬性賦權值
for i=1:4
for j = 1:2
%diff(i,j)=(max(x(i,ix(i,j+1),:))-min(x(i,ix(i,j),:)))/(max(x(i,ix(i,j+1),:))-B(i,j+1)+B(i,j)-min(x(i,ix(i,j),:)));
diff(i,j)=(B(i,j+1)-B(i,j))/(B(i,j+1)-min(x(i,ix(i,j+1),:))+max(x(i,ix(i,j),:))-B(i,j));
end
% diff(i)=diff(i)+(min(x(i,ix(i,j+1),:))-max(x(i,ix(i,j),:)))/(3*en(i,ix(i,j+1))+3*en(i,ix(i,j)));% 可用理論方法計算差異度,可能為負數
end
diff;
%seem
%屬性的差異由最小差異決定
for i=1:4
dif(i)=min(diff(i,:));
end
for i=1:4
weight(i)=dif(i)/(dif(1)+dif(2)+dif(3)+dif(4));
end
weight
%各模型分類結果的比較
success1=0;
success2=0;
success3=0;
y1=cloud(x2,ex(:,1),en(:,1));
y2=cloud(x2,ex(:,2),en(:,2));
y3=cloud(x2,ex(:,3),en(:,3));
for i=1:50
[B,ixx]=sort([y1(i) y2(i) y3(i)]);
if(ixx(3)==1)
success1=success1+1;
end
if(ixx(3)==2)
success2=success2+1;
end
if(ixx(3)==3)
success3=success3+1;
end
end
success1=50-success1
success2
success3=50-success3
%求類別的擴展,擴展后的邊界
% 由于類別2和類別有3% 的樣本被錯誤分類,兩類的中心移動各移動3%
% for i=1:4
% for j=1:2
% left(i,ix(i,j+1))=min(x(i,ix(i,j+1),:));
% right(i,ix(i,j))=max(x(i,ix(i,j),:));
% if (left(i,ix(i,j+1))> right(i,ix(i,j)))
% right(i,ix(i,j))=b+(a-b)*en(i,ix(i,j))/(en(i,ix(i,j+1))+en(i,ix(i,j)))
% left(i,ix(i,j+1)=a-(a-b)*en(i,ix(i,j+1))/(en(i,ix(i,j+1))+en(i,ix(i,j)))
%
% end
% end
% end
function y=cloud(x,ex,en,n)
global weight;
[a,b]=size(x);
for j=1:b
y(j)=1;
for i=1:a
y(j)=y(j)+weight(i)*exp(-0.5*(x(i,j)-ex(i))^2/en(i)^2);
end
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -